Commit Graph

143 Commits

Author SHA1 Message Date
niki ecc272e0ca vulkan: flush allocations if needed
There is no guarantee that the created buffer is actually host coherent.
If it is not we have to manually flush it.
2022-10-06 02:12:36 +02: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 752a386640 vulkan: stencils use the same reversed compare mode convention as other backends 2022-09-26 21:20:09 -03:00
slime e3ba7a0bff vulkan: fix missing stencil compare mask dynamic state setup 2022-09-26 21:18:51 -03:00
slime b9da6d6ddc vulkan: always use optimal image tiling.
Linear is useful for intermediate texture copy steps between the CPU and GPU, but we use buffers instead of textures for that.
2022-09-25 22:05:18 -03:00
slime 1eb4f1f172 vulkan: flush batched draws before clear(). minor code cleanup. 2022-09-25 17:41:47 -03:00
slime 1ada8c9a0b vulkan: update engine name 2022-09-25 17:41:08 -03:00
slime 95bfd948ca vulkan: move StreamBuffer frame management to StreamBuffer implementation
Fixes crashes with lots of auto-batched draws in a frame.
2022-09-25 17:40:53 -03:00
slime 108758c3d3 vulkan: fix stencil buffer having undefined contents
note: there are still other issues with draws using stencils.
2022-09-22 23:01:31 -03:00
slime 510b73c2b6 vulkan supports min/max blend ops 2022-09-20 22:13:32 -03:00
slime 3c3ba7d658 vulkan: initial support for clampzero and clampone wrap modes. 2022-09-20 22:10:11 -03:00
slime 26ec23f4ba vulkan: convert clear colors from sRGB to linear when gamma-correct rendering is on 2022-09-20 19:13:12 -03:00
slime 45c3638209 vulkan: use sRGB backbuffer format when gamma-correct rendering is on 2022-09-20 19:12:40 -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 f8af91ece5 vulkan: provide vulkan headers ourselves 2022-09-20 01:59:51 +02:00
niki 58c801be58 vulkan: fix incorrect samplers 2022-09-19 19:51:48 +02:00
niki 50cc954d6a vulkan: determine correct supported api version 2022-09-19 15:38:33 +02:00
niki ba759f5bc0 vulkan: use SamplerState::toKey for caching 2022-09-19 14:23:46 +02:00
niki faf36e5a92 vulkan: fix linux build (attempt 2) 2022-09-18 21:03:18 +02:00
niki 6de16f18e9 vulkan: fix linux build 2022-09-18 20:50:06 +02:00
niki 850749fac0 linux build: use c++14 2022-09-18 20:39:55 +02:00
niki 40ff636d6c vulkan: fix c++11 compatibility 2022-09-18 16:50:12 +02:00
niki 9af9bb5bd5 vulkan: keep track of window stencil buffer 2022-09-18 14:16:42 +02:00
niki 9a91cfd593 vulkan: use staging buffer for Buffer operations 2022-09-18 04:31:24 +02:00
niki bf6915ae73 vulkan: garbage collect unused objects 2022-09-18 02:57:29 +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 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