Commit Graph

1397 Commits

Author SHA1 Message Date
Alex Szpakowski c991f999eb Account for different DPI scales in font fallbacks.
Fixes #1675
2021-04-04 16:01:22 -03:00
Alex Szpakowski 95ab4054ff Fix a freeze on Intel drivers when using mipmapped Canvases
Fixes #1585

Also disallow generateMipmaps on depth/stencil canvases because it's not really supported.
2020-12-26 16:37:37 -04:00
Alex Szpakowski 4f730e930b Potential workaround for driver bug related to canvas mipmaps 2020-12-25 16:13:29 -04:00
Alex Szpakowski fe23c16198 Disable gamma correction on Windows + Intel HD 2/3000 / Intel HD Graphics
It's completely broken there. Closes #1592
2020-12-24 20:31:33 -04:00
Alex Szpakowski 48a13d443b Fix validating glsl1 shaders using array textures on GLES3 2020-12-23 20:42:12 -04:00
Alex Szpakowski d357ceb191 Merge pull request #1648 from xordspar0/tegra-3-bug
Work around Ouya driver bug related to texture array support
2020-12-23 20:13:41 -04:00
Miku AuahDark 81272ba5b5 Only use pinned memory on AMD GPUs.
As per in Discord, for some reason Intel driver in Linux(?) expose
pinned memory extension and causes driver crash in one test case.
2020-12-15 10:25:38 +08:00
Jordan Christiansen 0fd53e2e3d Disable GL_EXT_texture_array on OpenGL ES 2.0
The Nvidia Tegra 3 driver for Android (used by Ouya) erroneously claims
to support the desktop-oriented GL_EXT_texture_array extension. On
desktop GPUs using (non ES) OpenGL, the glTexImage3D and similar
functions are always present, and the GL_EXT_texture_array extension
simply adds support for texture arrays to those functions. On OpenGL ES
2.0, those functions do not exist, and GL_OES_texture_3D is required to
define them.

Calling glTexImage3D on the Tegra 3 causes a segfault. This change works
around the issue by manually setting GLAD_EXT_texture_array to 0 on
OpenGL ES 2.0 systems, which causes LÖVE to avoid codepaths that assume
that the 3D texture functions are available. It doesn't make sense for
any OpenGL ES 2.0 GPU to claim support for GL_EXT_texture_array.

Fixes #1647
2020-12-09 19:54:36 -06:00
Alex Szpakowski e32935e0f6 Backport Canvas memory stats fix from 12.0.
Fixes #1642
2020-11-11 15:11:00 -04:00
Alex Szpakowski 5f4d2f3323 Fix love.graphics.newVolumeImage when explicit mipmaps are given
Fixes issue #1602
2020-08-09 12:12:28 -03:00
Alex Szpakowski dde3db3006 Apply Image:replacePixels/missing text workaround to more ATI drivers
issue #1563
2020-07-12 18:25:55 -03:00
Alex Szpakowski d60d8867f4 Possible workaround for an Intel driver bug with readable depth buffers
https://github.com/love2d/love/issues/1592
2020-07-11 17:21:26 -03:00
Alex Szpakowski 50eeed7bb1 Fix Shader:send's Data variant when a matrix layout arg is used.
Also add a second more consistent Data+matrix layout variant of Shader:send which matches the argument order of the table+matrix layout variant - Shader:send(name, matrixlayout, data, ...).
2020-07-10 22:52:23 -03:00
Alex Szpakowski 96b8d29a5c Clean up code for computing smooth line vertex colors. 2020-06-28 21:58:13 -03:00
Alex Szpakowski 8fac08809a Eliminate redundant glActiveTexture calls when shaders are used.
The redundant calls were introduced with the previous commit.
2020-03-15 19:24:49 -03:00
Alex Szpakowski 9c2454816f Fix the active GL texture unit not always being set properly.
Fixes issues where texture methods wouldn't have any effect, depending on the current internal opengl state.
2020-03-15 01:29:33 -03:00
Alex Szpakowski 15f0e4109b Fix a typo in a comment 2020-02-15 13:50:47 -04:00
Alex Szpakowski 813b1e0e69 Remove debug print 2020-02-05 18:03:34 -04:00
Alex Szpakowski ca84b6db48 More robust error handling for AMD Pinned Memory buffers (issue #1540)
Also print out any errors that are produced from that (for now).
2020-02-05 07:49:38 -04:00
Alex Szpakowski eab3b83a2e Fix a hard freeze on AMD+Windows systems when the internal buffers used for automatic batching are resized. 2020-01-06 19:58:22 -04:00
Alex Szpakowski fc4847c69d Update copyright for the new year 2020-01-03 22:40:36 -04:00
Paul Cercueil 0bac89e00f Fix build on MIPS
On MIPS toolchains, the 'mips' keyword is a macro defined to 1.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2019-12-19 11:36:33 +01:00
Alex Szpakowski 6a552d5a6f Allow Canvases to use the r16, rg16, and rgba16 pixel formats. 2019-11-18 22:45:54 -04:00
Alex Szpakowski c3be5c4682 Fix a crash when Canvas:newImageData is called and the width multiplied by the canvas format's pixel byte size is not a multiple of 4, for example a 3x3 r16f canvas (thanks Max!) 2019-11-12 21:27:46 -04:00
Alex Szpakowski 1e0a7cad67 Fix instanced vertex attributes. 2019-10-04 19:28:55 -03:00
Alex Szpakowski 5dfcf90e66 Fix Text:set(" ") not properly clearing the internal buffer (resolves issue #1518). 2019-10-01 19:02:16 -03:00
Alex Szpakowski ed537c4f6a lines can render more than 65k vertices (resolves issue #1356). 2019-09-28 18:34:56 -03:00
Alex Szpakowski 157282ec7e Fix a typo causing mesh attribute instancing to behave weirdly. 2019-09-28 00:31:44 -03:00
Alex Szpakowski f03b391245 Canvas:newImageData creates an ImageData with a pixel format that matches the canvas'. 2019-09-20 19:25:15 -03:00
Alex Szpakowski 58e26280c2 Fix detection for support of r16 and rg16 image formats on desktops. 2019-09-18 19:36:08 -03:00
Alex Szpakowski 9ab2a94037 Rename internal C++ Color struct to Color32 to help differentiate it from Colorf. 2019-09-14 23:13:40 -03:00
Alex Szpakowski 89eb3c6236 Remove a static_assert that fails in some compilers 2019-08-25 17:16:58 -03:00
Alex Szpakowski 55d4dc0f9e Restructure some internal vertex buffer binding code to be closer to how graphics APIs actually behave. 2019-08-25 16:50:15 -03:00
Bart van Strien 932068e777 Stop the attached Source when a Video gets destroyed
Before it would end up paused, but this means the audio playback thread will
still keep it alive. Since there are no other references, there is no way to
then free that Source anymore.
2019-08-11 15:34:00 +02:00
Alex Szpakowski 93fef5f144 Remove some dead code. 2019-07-17 18:57:14 -03:00
Alex Szpakowski 5c01289300 Fix love.graphics.getTextureTypes to return a table with boolean values instead of number values. 2019-07-13 21:58:01 -03:00
Alex Szpakowski 3c9662a9ce Fix a typo in the line smoothing code. I don't think it causes any visual change. 2019-06-28 12:40:41 -03:00
Alex Szpakowski 8455ef22d5 More consistent naming for vertex and index buffers in love's code. 2019-06-04 20:29:44 -03:00
Alex Szpakowski 8e5b71e8e7 Improve automatic batching performance slightly on AMD gpus by removing some redundant/useless opengl calls (there is no mapped buffer to flush). 2019-06-01 15:58:42 -03:00
Alex Szpakowski ddef70e141 Potentially improve automatic batching performance slightly on nvidia/intel GPUs. 2019-06-01 15:06:19 -03:00
Alex Szpakowski 51d0733943 Apply workaround for font texture loading on Radeon 3000/4000-era graphics cards to mobile GPUs as well as desktop ones. 2019-05-30 20:36:19 -03:00
Alex Szpakowski 02fa8b0b2b Fill truetype font glyph atlases with transparent white instead of transparent black in the borders between glyphs. Fixes black fringes around text (resolves issue #1495) and reduces the appearance of flickering when text is moved at non-integer coordinates and gamma correct rendering isn't enabled (closes issue #1143). 2019-05-27 19:36:22 -03:00
Alex Szpakowski 09cd3b68c9 Explicitly disable color FBO attachments where possible for depth/stencil canvases. Potentially fixes issue #1470 2019-04-02 21:13:01 -03:00
Alex Szpakowski 0c2153e0ca Fix a potentially uninitialized value in love.graphics code. Minor cleanup. 2019-04-02 20:20:18 -03:00
Alex Szpakowski 76917685dd Add an optional vertex count parameter to mesh:setVertices. 2019-01-19 12:12:29 -04:00
Alex Szpakowski 74dcc41b38 Cleaned up love.graphics Image code for determining whether the image's pixel format is supported. 2019-01-16 19:30:21 -04:00
Alex Szpakowski 1bb50fccac Reduce peak memory usage when a font's glyph atlas needs to be recreated. 2019-01-16 18:21:58 -04:00
Alex Szpakowski d83117c981 Improve precision of the gammaToLinearPrecise shader function. 2019-01-15 17:29:13 -04:00
Alex Szpakowski 0752f27bdf Update copyright year for 2019 2019-01-03 21:09:05 -04:00
Alex Szpakowski 364718fa46 Android: potentially work around a Qualcomm Adreno driver bug which prevented videos from being loaded into vram. 2018-12-31 21:02:02 -04:00