Sasha Szpakowski
f6cdbdc868
Merge branch 'main' into 12.0-development
2022-12-31 22:46:34 -04:00
niki
ccca355664
vulkan: fix love.window.setVsync
2022-12-22 01:27:05 +01:00
niki
a95ff597d5
vulkan: remove unnecessary code
...
Since we supply the vulkan headers ourselves
we can be sure that all the definitions used are there.
2022-10-06 01:18:27 +02:00
slime
3c3ba7d658
vulkan: initial support for clampzero and clampone wrap modes.
2022-09-20 22:10:11 -03:00
slime
2b074fe90e
vulkan: improve sRGB support for textures
2022-09-20 19:04:56 -03:00
niki
b0fb00c54f
vulkan: fix crashes
...
in isPixelFormatSupported and setStencilMode
2022-09-20 14:49:56 +02:00
niki
50cc954d6a
vulkan: determine correct supported api version
2022-09-19 15:38:33 +02:00
niki
4b13e5b99d
vulkan: fix linux build attempt 4
2022-09-18 22:04:20 +02:00
niki
87c9b74c8e
vulkan: fix linux build attempt 5
2022-09-18 22:00:28 +02:00
niki
cf099946a1
vulkan: fix depth stencil textures
2022-09-18 00:18:32 +02:00
niki
e128f3453e
vulkan: implement compressed textures
2022-09-17 20:32:34 +02:00
niki
d1da47dbf0
vulkan: implement screenshots
2022-09-14 17:31:53 +02:00
niki
76199688f6
vulkan: implement discard
2022-09-11 17:09:38 +02:00
niki
1658c89f3d
vulkan: add support for custom depth/stencil tex
2022-09-11 01:57:23 +02:00
niki
a93d153792
vulkan: adjust code styling
2022-09-10 17:40:46 +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
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
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
7cc6ed40be
vulkan: implement depth and stencil
2022-08-21 17:42:39 +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
0ebb34e037
vulkan: avoid usage of general image layout
2022-08-08 22:06:01 +02:00
niki
1647f6c9c2
vulkan: remove unnecessary quadindex code
2022-08-01 19:30:08 +02:00
niki
dcea056fcb
vulkan: properly implement samplers
2022-08-01 18:51:09 +02:00
niki
98ebdd7871
vulkan: fix wireframe validation error
2022-08-01 16:07:37 +02:00
niki
224b9e84f0
vulkan: add support for 2d array textures
2022-08-01 15:53:31 +02:00
niki
8cf7a79657
vulkan: add missing layout transitions
2022-07-31 23:56:03 +02:00
niki
7bbc042fce
vulkan: remove redundant tabs
...
this makes reading the source files easier
and is more in line with the rest of the löve codebase
2022-07-30 01:16:56 +02:00
niki
506cf8c210
vulkan: fix colors
2022-07-30 00:48:46 +02:00
niki
94c58e1599
vulkan: fix video rendering
2022-07-30 00:26:49 +02:00
niki
6d7bd645fc
vulkan: use vkCmdClearColorImage to clear texture
...
using the vulkan functionality probably leads to less bugs.
Until now it was assumed that any image was in the rgba8 format,
which is of course not correct. Clearing a texture to white or black
should now work for any format.
2022-07-24 13:43:48 +02:00
niki
6916182a79
vulkan: implement getAPIStats
2022-07-16 23:46:03 +02:00
niki
4c33d0aa36
vulkan: fix Shader::attach()
2022-07-16 17:52:29 +02:00
niki
95952c691d
vulkan: implement setRenderTargetsInternal
...
basic usage of canvases now works.
Colors probably aren't correct yet.
2022-07-15 01:44:07 +02:00
niki
0ae81091d1
vulkan: use dynamic rendering
...
This vulkan 1.3 feature will make the code simpler when dealing
with off screen render targets (i.e. löve canvases)
2022-07-14 18:01:46 +02:00
niki
38f15ae97d
vulkan: implement cull and winding
2022-07-13 17:27:11 +02:00
niki
c6d79ae87e
vulkan: implement setColorMask
2022-07-13 16:50:28 +02:00
niki
a591b2b99e
vulkan: implement setBlendState
2022-07-13 16:37:16 +02:00
niki
0834408b90
vulkan: implement draw(DrawCommand)
...
Now love.graphics.point and love.graphics.line works
2022-07-13 13:56:00 +02:00
niki
ef08282f0d
vulkan: implement getRendererInfo
2022-07-10 19:13:10 +02:00
niki
0cea07806f
use different uniform buffers for each draw call
2022-06-30 18:42:49 +02:00
niki
7f894e5bf7
some work on drawQuads (not fully working yet)
2022-06-25 23:02:13 +02:00
niki
b5ba2b65b5
stop hardcoding vulkan vertex layouts
2022-06-16 01:16:23 +02:00