Commit Graph

3951 Commits

Author SHA1 Message Date
Sasha Szpakowski 9aaeabd6a5 vulkan: fix love_ScreenSize shader variable when a canvas is active. 2024-03-22 23:08:34 -03:00
Sasha Szpakowski 17cb64c45f vulkan: fix validation errors in love.graphics.getTextureFormats. 2024-03-21 21:43:45 -03:00
Sasha Szpakowski bbaa55f8b8 vulkan: fix validation errors in layout transitions for depth-only and stencil-only images. 2024-03-21 21:32:03 -03:00
Sasha Szpakowski 95796caa06 improve performance of love.graphics.draw's Lua binding code. 2024-03-20 18:36:59 -03:00
Miku AuahDark 9eacd483c6 Android: Fixed assets/game.love fusing not being recognized.
Fixes love2d/love-android#267.
2024-03-19 22:24:45 +08:00
Sasha Szpakowski 4d1865fe1a opengl: attempt to fix the Android workaround for r8 pixel format support. 2024-03-17 13:54:40 -03:00
Sasha Szpakowski 60911c5181 vulkan: remove some newly dead code 2024-03-17 00:01:10 -03:00
Sasha Szpakowski 48aefd91fa vulkan: captureScreenshot improvements.
- Don't create several persistent screen-sized images and buffers for screenshots, only create one temporary buffer during a frame that requests a screenshot.
- Attempt to handle more out-of-memory situations.
- Make sure the final screenshot is opaque.
- Swap R and B channels in the screenshot ImageData when the backbuffer is BGRA.
2024-03-16 23:51:40 -03:00
Sasha Szpakowski f3887361e5 Merge pull request #2037 from nikeinikei/main
vk: unify local uniform buffer
2024-03-13 18:33:56 -03:00
niki 07c5c44ea3 vulkan: simplify code with alignUp 2024-03-13 22:16:33 +01:00
Sasha Szpakowski f8859358c3 allow graphics debug output when OpenGL ES 3.2 is used. 2024-03-12 18:28:26 -03:00
Sasha Szpakowski 930053d81d opengl: ignore debug notifications when debug output is enabled. 2024-03-12 18:27:49 -03:00
Sasha Szpakowski 63aba28d18 metal: fix shader compilation when using void effect() with MRTs. 2024-03-11 19:14:25 -03:00
niki 295fb214d5 vulkan: remove unused constant and use correct sizes for mapping
the local uniform stream buffer
2024-03-11 13:47:43 +01:00
Sasha Szpakowski c91101d2e4 Fix texel buffer detection in shaders. 2024-03-10 21:24:10 -03:00
Sasha Szpakowski ec9fb6eb28 Improve Windows vulkan draw performance by reducing the size of a struct. 2024-03-10 14:33:29 -03:00
Sasha Szpakowski b12ecf49d8 Fix compile errors 2024-03-10 13:51:33 -03:00
Sasha Szpakowski 9e00ce0973 metal: fix uniform data corruption
The wrong buffer binding offset was being used in 2/3rds of frames.
2024-03-10 13:38:28 -03:00
Sasha Szpakowski 75fd2fa06e metal: add debug labels for internal buffers. 2024-03-10 13:08:04 -03:00
niki 54f27a8277 vulkan: unify local uniform buffer 2024-03-10 14:41:37 +01:00
Bart van Strien daff7ef11f Adjust OpenAL include paths to proper include paths
We add the subdirectory AL to the include paths, so our includes should be relative to that. Presumably it would previously work with the wrong paths because some other library would be there.
2024-03-10 14:41:28 +01:00
Sasha Szpakowski b6c47cd3ec vulkan: fix typo preventing storage textures in shaders from working. 2024-03-09 16:09:26 -04:00
Sasha Szpakowski b08f35d341 vulkan: only set cubemap compatibility for array textures with >= 6 layers. 2024-03-09 16:01:26 -04:00
Sasha Szpakowski 892411a737 don't error during newShader if a buffer is unused. 2024-03-09 13:22:39 -04:00
Sasha Szpakowski 10565e9967 vulkan: improve draw performance via Shader::cmdPushDescriptorSets. 2024-03-09 13:22:15 -04:00
Sasha Szpakowski be377601f7 vulkan: shader binding mapper works with arrays of resources 2024-03-09 13:07:23 -04:00
Sasha Szpakowski 51d5773b93 vulkan: optimize vertex buffer binding code 2024-03-09 00:15:13 -04:00
Sasha Szpakowski 52f33041a5 Fix Shader:send with storage buffers. 2024-03-08 17:52:48 -04:00
niki ca0264e906 vulkan: fix #2032
when using the low level vertexmain and pixelmain entry points
it can happen that there are no local uniforms used.
2024-03-08 13:42:05 +01:00
Sasha Szpakowski 8dae72b88e vulkan: fix shader:send(texture|buffer) not calling love.graphics.flushBatch. 2024-03-07 23:04:22 -04:00
Sasha Szpakowski c35b9cba4a vulkan: fix a potential error during draws. 2024-03-07 22:31:05 -04:00
Sasha Szpakowski 321143755f metal: clean up some shader resource binding code 2024-03-07 21:53:40 -04:00
Sasha Szpakowski ad42570cef Fix compile errors on Linux/Android 2024-03-07 21:37:21 -04:00
Sasha Szpakowski 2079f657e7 graphics: most uniform reflection is handled at a higher level instead of backend code.
Fixes boolean uniforms when Metal is used.
2024-03-07 21:24:11 -04:00
Sasha Szpakowski 3509e651fd Fix Texture:getWidth for texture views. 2024-03-06 14:23:18 -04:00
Sasha Szpakowski 32e777c156 vulkan: fix a crash. 2024-03-05 23:03:55 -04:00
Sasha Szpakowski 01fbedb225 vulkan: improve some error messages when shader compilation fails. 2024-03-03 12:40:23 -04:00
Sasha Szpakowski fe56f88f8e opengl es: expand support for rendering to floating point formats. 2024-02-28 17:55:37 -04:00
Sasha Szpakowski 8ba72d8cf1 opengl: the computewrite flag isn't supported for sRGB textures. 2024-02-28 13:20:11 -04:00
Sasha Szpakowski ff06718f8a opengl: only populate Shader:getWarnings string when there are warnings. 2024-02-27 23:17:24 -04:00
Sasha Szpakowski ed6a50178c Filled polygons have texture coordinates computed from their bounds.
Fixes #1951.
2024-02-25 20:09:06 -04:00
Sasha Szpakowski 476e520969 Fix pointer alignment of default random generator object. 2024-02-25 11:51:33 -04:00
Sasha Szpakowski e20f018272 Change the 'viewformats' texture setting field to be a list of pixel formats.
Replace Texture:hasViewFormats with Texture:getViewFormats.
2024-02-24 23:42:28 -04:00
Sasha Szpakowski 42812ad521 Add texture views. Fixes #2022.
Add love.graphics.newTextureView(basetexture, viewsettings). Requires GLSL4 support.
Add 'viewformats' boolean setting to texture setting tables.
Add Texture:hasViewFormats.

The viewsettings table has the following fields:
  format = nil, -- set this to a pixel format to override the base format. It must have the same number of bytes per pixel as the original, and the 'viewformats' setting on the original texture must be true for this to work. Cannot be used for compressed or depth/stencil textures.
  type = nil, -- set this to a texture type to override the base texture type. 2d base textures can make [2d, array] views. [array, cube] base textures can make [2d, array, cube] views.
  mipmapstart = nil, -- set to a number to use a less detailed mipmap level as a base.
  mipmapcount = nil, -- set to a number to override the number of mipmaps in the texture view.
  layerstart = nil, -- set to a number to use a specific layer or cube face as a base.
  layers = nil, -- set to a number to override the number of layers in an array texture view.
2024-02-24 15:45:43 -04:00
Sasha Szpakowski 1e97e09b28 Rework internal module registration to happen in constructors. 2024-02-24 15:21:38 -04:00
Sasha Szpakowski d2eca731d4 Remove Data:getInt64 and ByteData:setInt64.
Lua numbers don't cover the full range for 64 bit integers, so those methods couldn't be reliable.
2024-02-18 17:22:31 -04:00
Sasha Szpakowski ae6800e0e0 Add Data:performAtomic to lock a mutex while using a Data object. 2024-02-18 17:07:24 -04:00
Sasha Szpakowski 007090af14 ImageData: remove automatic mutex locks. 2024-02-18 17:06:40 -04:00
Sasha Szpakowski d880c48502 Clean up some internal texture data upload parameters. 2024-02-17 14:10:38 -04:00
Sasha Szpakowski 81d0c720a2 Fix compressed texture uploads using the wrong pixel format. 2024-02-17 14:00:31 -04:00