Commit Graph

1781 Commits

Author SHA1 Message Date
Alex Szpakowski a4d0761e84 metal: work on depth/stencil textures, MSAA 2021-04-02 22:10:01 -03:00
Alex Szpakowski 3accf51eb2 metal: explicitly compile to metalsl 2.1 2021-04-02 18:10:46 -03:00
Alex Szpakowski 9acf7df8e8 metal: fix crash when stream buffers are resized 2021-04-02 17:53:55 -03:00
Alex Szpakowski 4cac353908 metal: fix love_ScreenSize when a canvas is active 2021-04-02 16:10:20 -03:00
Alex Szpakowski 1e90b4e8f7 metal: fix shader uniform names 2021-04-02 15:45:17 -03:00
Alex Szpakowski 662b70458e metal: fix setCanvas 2021-04-02 14:32:45 -03:00
Alex Szpakowski ceaa8f95ff metal: fix texel buffer size 2021-03-31 23:04:27 -03:00
Alex Szpakowski 5fa570b9a6 metal: initial texel buffer Shader:send implementation 2021-03-31 23:02:36 -03:00
Alex Szpakowski 1b9b32c7a7 metal: clean up some shader code 2021-03-31 20:38:37 -03:00
Alex Szpakowski 52d4a5c679 metal: initial shader texture binding implementation.
rework metal shader compilation/parsing.
2021-03-31 18:35:57 -03:00
Alex Szpakowski 46ca836bd5 metal: enable clamp-to-one wrap mode on iOS 10.14+ 2021-03-30 19:32:33 -03:00
Alex Szpakowski 7eb3d4343a Move some shader binding validation code out of the opengl backend 2021-03-30 19:28:42 -03:00
Alex Szpakowski 2064c140ac metal: clamp scissor rect to be within the active RT 2021-03-30 19:27:52 -03:00
Alex Szpakowski aad0810e11 metal: initial (bad/slow) setShader tracking 2021-03-29 18:28:06 -03:00
Alex Szpakowski 3a1c85c13e metal: hook up correct texture size and max RT limits 2021-03-27 23:10:49 -03:00
Alex Szpakowski 1e85e1b414 metal: fix Buffers, fix shader cleanup 2021-03-27 22:21:00 -03:00
Alex Szpakowski 326dfe2632 metal: workaround for garbage data being stored in pipeline keys 2021-03-27 17:46:43 -03:00
Alex Szpakowski da6fd95a64 metal: more work on shader uniforms 2021-03-27 17:37:53 -03:00
Alex Szpakowski 5f888be64a metal: initial pixel format support implementation 2021-03-27 17:37:09 -03:00
Alex Szpakowski 3744f8b939 metal: implement point sizes 2021-03-26 21:49:00 -03:00
Alex Szpakowski 9cc6be4ac7 Remove bufferusage_uniform for now
It's not really implemented
2021-03-26 21:43:24 -03:00
Alex Szpakowski 2d2918a254 Merge branch '12.0-development' into metal 2021-03-26 21:42:08 -03:00
Alex Szpakowski e1d5f3b010 metal: fix Texture:setWrap/setFilter 2021-03-25 20:41:05 -03:00
Alex Szpakowski 4639e7330e metal: initial implementation of Texture:newImageData. 2021-03-25 20:36:31 -03:00
Alex Szpakowski c0a8aa3ef7 metal: use EXT_vulkan_glsl_relaxed 2021-03-23 21:57:36 -03:00
Alex Szpakowski 694d448e83 Vertex shaders can write to gl_PointSize (fixes #1603).
If a shader uses gl_PointSize then it can only be used when drawing points. If a shader doesn't use gl_PointSize then it can't be used when drawing points.

Added 'ConstantPointSize' and 'CurrentDPIScale' built-in shader uniforms.

ConstantPointSize is in DPI-scaled points, whereas gl_PointSize is in pixels, so to get the correct default behaviour a shader needs to do gl_PointSize = ConstantPointSize * CurrentDPIScale
2021-01-23 13:47:12 -04:00
Alex Szpakowski deff795908 Rename some internal buffer enums to better match what they do 2021-01-17 20:59:16 -04:00
Alex Szpakowski 2e2ebe95cd Clean up some obsolete internal graphics code 2021-01-17 16:50:44 -04:00
Alex Szpakowski 4244e01a35 More texture format support cleanup 2021-01-17 14:48:35 -04:00
Alex Szpakowski ef5a0250e9 Fix compilation on windows 2021-01-17 14:13:16 -04:00
Alex Szpakowski e2838131f2 Add love.graphics.copyBuffer. 2021-01-17 14:02:00 -04:00
Alex Szpakowski e1f40b433d Clean up some graphics enum declaration code 2021-01-16 20:51:06 -04:00
Alex Szpakowski 52238bb7d9 Add optional source data start index arg to Buffer:setArrayData
The argument list is now Buffer:setArrayData(data or table, sourceindex=1, destindex=1, count=automatically computed)

#1598
2021-01-16 20:34:27 -04:00
Alex Szpakowski 4d6cfb1f90 metal: vertex attribute reflection is slightly better 2021-01-16 14:08:03 -04:00
Alex Szpakowski 5e77944dc0 refactor texture format support internals 2021-01-16 13:09:01 -04:00
Alex Szpakowski 558cc6a111 metal: post-merge compile fix 2021-01-14 20:40:37 -04:00
Alex Szpakowski 98f8fe02a1 Merge branch '12.0-development' into metal 2021-01-14 20:33:45 -04:00
Alex Szpakowski 50ff86bd92 Graphics Buffers can be used as Shader Storage Buffers. 2021-01-10 17:53:12 -04:00
Alex Szpakowski 0ec7ea73de Improve error message slightly 2020-12-30 11:46:00 -04:00
Alex Szpakowski 2fb88cb4a5 Remove some obsolete code 2020-12-27 19:52:27 -04:00
Alex Szpakowski 2a5a90ccef Add 'vertexmain' and 'pixelmain' shader entry points.
These are low level 'raw' entry points which don't declare any inputs or outputs themselves. They require GLSL 3 to use.
2020-12-27 19:17:47 -04:00
Alex Szpakowski 65bfeedd4e Merge branch 'master' into 12.0-development 2020-12-26 22:48:08 -04: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
Alex Szpakowski 1eca5d0b8f metal: don't try to autogenerate depth mips, that isn't supported 2020-12-22 23:21:17 -04:00
Alex Szpakowski 47ea32781a metal: handle triangle strip draws 2020-12-22 23:06:06 -04:00
Alex Szpakowski 20a92a4106 Merge branch '12.0-development' into metal 2020-12-22 22:37:17 -04:00