summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_compute_pass.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* vk_compute_pass: Implement indexed quadsReinUsesLisp2020-04-171-8/+197
| | | | | | | | | | | | | Implement indexed quads (GL_QUADS used with glDrawElements*) with a compute pass conversion. The compute shader converts from uint8/uint16/uint32 indices to uint32. The format is passed through push constants to avoid having different variants of the same shader. - Used by Fast RMX - Used by Xenoblade Chronicles 2 (it still has graphical due to synchronization issues on Vulkan)
* buffer_cache: Return handles instead of pointer to handlesReinUsesLisp2020-04-161-8/+8
| | | | | | | | | | | The original idea of returning pointers is that handles can be moved. The problem is that the implementation didn't take that in mind and made everything harder to work with. This commit drops pointer to handles and returns the handles themselves. While it is still true that handles can be invalidated, this way we get an old handle instead of a dangling pointer. This problem can be solved in the future with sparse buffers.
* renderer_vulkan: Drop Vulkan-HppReinUsesLisp2020-04-111-76/+165
|
* vk_compute_pass: Address feedbackRodrigo Locatti2020-01-111-0/+2
| | | Comment hardcoded SPIR-V modules.
* vk_compute_pass: Add compute passes to emulate missing Vulkan featuresReinUsesLisp2020-01-081-0/+337
This currently only supports quad arrays and u8 indices. In the future we can remove quad arrays with a table written from the CPU, but this was used to bootstrap the other passes helpers and it was left in the code. The blob code is generated from the "shaders/" directory. Read the instructions there to know how to generate the SPIR-V.