niki
f4c38eb00a
Revert "vulkan: use push constants for builtin uniforms"
...
This reverts commit 47e3fc85d2 .
2022-09-15 15:55:47 +02:00
niki
47e3fc85d2
vulkan: use push constants for builtin uniforms
...
when available
2022-09-15 15:17:06 +02:00
niki
d1da47dbf0
vulkan: implement screenshots
2022-09-14 17:31:53 +02:00
niki
4e59b563a4
vulkan: implement texture msaa
2022-09-14 14:15:57 +02:00
niki
726cd147c8
vulkan: render targets with mip and slice
2022-09-14 13:48:13 +02:00
niki
7866dde319
vulkan: use sdl to dynamically load vulkan
2022-09-14 13:31:09 +02:00
niki
82f079eebd
vulkan: fix linux build
2022-09-13 17:39:12 +02:00
niki
46598480c4
vulkan: try fix github actions linux build
2022-09-13 14:34:11 +02:00
niki
6a2d1a9edd
vulkan: use dynamic loading
...
If Vulkan ist not available on a system the program will still run,
and it will fallback to opengl.
2022-09-13 14:11:24 +02:00
niki
fb44ddb546
vulkan: document change in changes.txt
2022-09-13 13:09:57 +02:00
niki
faeca1c4bc
vulkan: fix wrong image layout validation warnings
2022-09-12 13:46:03 +02:00
niki
6d9f855bf4
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-09-11 17:49:43 +02:00
niki
76199688f6
vulkan: implement discard
2022-09-11 17:09:38 +02:00
niki
fd951909c0
vulkan: add more optional extensions
...
VK_KHR_dedicated_allocation, VK_KHR_buffer_device_address,
and VK_EXT_memory_budget can get used by VMA.
VK_KHR_spirv_1_4 can get used by the Shader.
VK_KHR_spirv_1_4 depends on VK_KHR_shader_float_controls.
VK_KHR_dedicated_allocation depends on VK_KHR_get_memory_requirements2
2022-09-11 15:03:40 +02:00
niki
ef80e11b4d
vulkan: add support for uniform texture arrays
2022-09-11 13:02:38 +02:00
niki
294761713f
vulkan: fix bug: incorrect uniform values
2022-09-11 04:20:45 +02:00
slime
9c46b75138
ImageData:encode now supports saving exr image files.
...
Also add support for loading uint exr image files, and fix a memory leak in the exr loading code.
Resolves #1813 .
2022-09-10 23:17:42 -03:00
niki
1658c89f3d
vulkan: add support for custom depth/stencil tex
2022-09-11 01:57:23 +02:00
niki
816e3f01a2
vulkan: correctly order gpu commands
2022-09-10 19:21:31 +02:00
niki
a93d153792
vulkan: adjust code styling
2022-09-10 17:40:46 +02:00
niki
57207606c0
vulkan: implement Shader::getVertexAttributeIndex
2022-09-10 15:27:45 +02:00
niki
2010675bff
vulkan: fix typo
2022-09-09 23:42:28 +02:00
niki
8807c3dd37
vulkan: fix case where msaa = 1
2022-09-09 23:14:44 +02:00
niki
9025631231
vulkan: modify descriptor set allocation
...
Setting the size of each descriptor pool to one
was a hack introduced to make the code work on android.
Changing the code to now allocate all descriptor sets at once
should fix the previous crash.
Not tested yet.
2022-09-09 12:02:30 +02:00
slime
9be43d671c
https: windows: fix truncated body data returned from GET methods
2022-09-04 23:38:39 -03:00
slime
bba1717130
metal: fix love.graphics.captureScreenshot
2022-09-02 10:53:52 -03:00
nikeinikei
502c1e83ab
vulkan: more reserved usage flags of texture
2022-09-01 16:10:10 +02:00
nikeinikei
adc02a4939
vulkan: optionally use VK_KHR_PUSH_DESCRIPTOR
2022-09-01 15:01:40 +02:00
niki
7185d7356f
vulkan: fix enabling extensions
2022-08-31 19:50:03 +02:00
niki
b28d2df6f8
vulkan: fix crash
2022-08-31 02:35:56 +02:00
niki
a0ee9f7b9b
vulkan: implement compute shaders
...
A lot of stuff probably isn't implemented yet, however the
following code already works:
```lua
local shader = love.graphics.newComputeShader [[
layout (local_size_x = 1, local_size_y = 1) in;
layout(r32f) uniform highp image2D out_tex;
uniform float time;
void computemain() {
imageStore(out_tex, ivec2(love_GlobalThreadID.xy), vec4(time, 1.0, 1.0, 1.0));
}
]]
local tex = love.graphics.newTexture(64, 64, {computewrite = true,format = "r32f"})
function love.draw()
shader:send("out_tex", tex)
shader:send("time", love.timer.getTime() % 1)
love.graphics.dispatchThreadgroups(shader, 64, 64, 1)
love.graphics.print("compute shader test")
love.graphics.draw(tex, 25, 25)
end
```
2022-08-31 02:07:46 +02:00
niki
e409770be1
vulkan: fix some validation warnings
2022-08-30 20:28:18 +02:00
niki
ec5a3a50f9
vulkan: implement graphics readback
2022-08-30 17:11:59 +02:00
niki
a69d4a38dd
vulkan: optionally use extended dynamic state
...
This should cut down on the number of pipeline permutations
needed when this extension is available.
2022-08-30 03:20:33 +02:00
niki
d123021e26
vulkan: fix canvas rendering (on android)
...
Before this patch, sometimes rendering a texture
on an android device would result in random things
appearing in the canvas, apart from the stuff
that has been drawn properly.
With these changes this does not seem to appear anymore.
2022-08-29 17:43:54 +02:00
niki
4047cc9d3a
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-08-28 03:43:08 +02:00
niki
c5a2e47714
vulkan: implement multi canvas rendering
2022-08-28 03:35:06 +02:00
slime73
f1e09ab2e6
Merge pull request #1835 from Klonan/world-get-fixtures-in-area
...
Added World:getFixturesInArea()
2022-08-27 19:21:37 -03:00
niki
748f2676d5
vulkan: fix mip maps
2022-08-27 22:20:33 +02:00
niki
18221beb25
vulkan: fix canvas rendering on android
2022-08-27 20:58:17 +02:00
Klonan
7595bc7edb
whitespace micro
2022-08-27 17:37:30 +02:00
niki
7a67983b3d
vulkan: fix some crashes relating to memory mngmt
2022-08-27 17:37:02 +02:00
Klonan
4e81a31cd1
Code style (tabs)
2022-08-27 17:35:41 +02:00
Klonan
03939299db
Added World:getFixturesInArea()
2022-08-27 17:16:51 +02:00
slime
bded15ff2a
Decoders failing to allocate their buffer will cause a Lua error instead of crashing.
2022-08-25 19:44:10 -03:00
slime
db1bf4707c
Workaround for built-in shaders on some ES2 devices which don't support highp in pixel shaders.
2022-08-25 19:25:01 -03:00
slime
96820749ad
Potential optimization for built-in uniform access in shader code.
...
Assigning to and accessing extra shader variables can increase VGPR / wave-variant register usage in shaders, which is often a limiting factor for performance in non-trivial shaders. Accessing the uniforms directly should bypass that.
2022-08-25 18:17:31 -03:00
niki
77f75648e8
vulkan: default renderpass and framebuffers
...
Since these objects basically get used every frame
we shouldn't store them in a hashmap with potentially
worse performance.
Instead storing them in member variables should be better.
2022-08-25 18:15:18 +02:00
niki
a577be8a6d
vulkan: fix a few bugs in Shader
2022-08-23 01:38:47 +02:00
niki
a08395e12d
vulkan: implement msaa
2022-08-22 23:09:21 +02:00