niki
e128f3453e
vulkan: implement compressed textures
2022-09-17 20:32:34 +02:00
niki
aec9e201f5
vulkan: implement volume textures
2022-09-16 13:49:31 +02:00
niki
3a74fecb22
vulkan: outsource used libraries
2022-09-16 02:25:36 +02:00
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
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
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
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
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
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
c5a2e47714
vulkan: implement multi canvas rendering
2022-08-28 03:35:06 +02:00
niki
18221beb25
vulkan: fix canvas rendering on android
2022-08-27 20:58:17 +02:00
niki
7a67983b3d
vulkan: fix some crashes relating to memory mngmt
2022-08-27 17:37:02 +02: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
a08395e12d
vulkan: implement msaa
2022-08-22 23:09:21 +02:00
niki
62148790a8
vulkan: fix scissor on android
2022-08-22 17:40:27 +02:00
niki
7cc6ed40be
vulkan: implement depth and stencil
2022-08-21 17:42:39 +02:00
nikeinikei
dfa9b7da34
vulkan: fix build on machines without vulkan 1.3
2022-08-21 02:08:01 +02:00
niki
665614b9b9
vulkan: fix crash when recreating swapchain
2022-08-20 21:33:09 +02:00
niki
5f2fdc0dd0
vulkan: android: fix display orientation
2022-08-20 21:03:49 +02:00
niki
23666b1fde
vulkan: fix android build
...
It compiles now, but it's not working correctly yet
2022-08-20 19:38:59 +02:00
niki
3e762c9772
vulkan: remove dynamic rendering (part 2)
2022-08-20 16:38:13 +02:00
niki
4660466887
vulkan: don't use dynamic rendering
2022-08-20 15:49:09 +02:00
niki
7be9bb3ecc
vulkan: implement vsync setting
2022-08-19 21:40:21 +02:00
niki
be8778b4eb
vulkan: remove dep on VK_KHR_push_descriptor
...
It's not sure if this extension is supported everywhere
This commit uses normal descriptor pools, sets and writes,
which are all availabel in base vulkan.
2022-08-19 16:44:59 +02:00
niki
b2771dd111
vulkan: fix cube textures
2022-08-15 00:06:50 +02:00
niki
390ae40e83
vulkan: cut down on number of cmd buffers
...
Until now we've used a command buffer for every swap chain image,
however it makes more sense to just have a command buffer for every
frame in flight, since we won't be ever recording more than that.
This makes it more in line with the data transfer command buffers,
which are also just created per frame in flight.
This should make more sense.
2022-08-11 16:11:06 +02:00
niki
fbb64a07af
vulkan: partially implement mipmaps
...
There is no real effect yet when rendering, however debugging the
application with renderdoc reveals that the mipmap generation is
already correct. There's probably something weird going on with the
sampling. I'll have to look into that next.
2022-08-09 00:57:07 +02:00
niki
0ebb34e037
vulkan: avoid usage of general image layout
2022-08-08 22:06:01 +02:00
niki
c51b12a177
vulkan: make api design more senseful
2022-08-08 21:36:43 +02:00