Commit Graph

22 Commits

Author SHA1 Message Date
Flyinghead 066093553f vulkan: copy provoking vertex. crash when rtt2vram. rtt vram stride
setImageLayout was missing TransferSrcOptimal as source layout
Vulkan needs the first vertex to be the provoking vertex so copy 3rd on
1st when flat shading.
VRAM stride was incorrect (RTT to VRAM)
2019-12-10 12:51:10 +01:00
Flyinghead a1981c48b6 vulkan: transition oit depth attachment after init. Avoid empty buffer 2019-12-08 22:39:30 +01:00
Flyinghead cd49b32473 vulkan: allocate oit buffers in device-local mem. NVidia fixes
BufferData was always allocated in host visible mem, regardless of the
mem property argument.
NVidia gpus don't support blitting to 565 and 5551, which is needed for
mipmaps, so convert to 8888 instead.
Use optimal tiling for oit pointers image (linear not supported by
nvidia and probably slower anyway)
oit screen drawer uses multiple final attachments
Set non-oit depth attachment as transient and lazily allocate mem
2019-12-04 15:51:26 +01:00
Flyinghead 0280fcc9d4 vulkan: render to temp fbo then to screen
renderers render to image which is blitted to the screen by the context
batch texture updates command buffers and submit once
fix screen scaling
2019-11-29 19:28:22 +01:00
Flyinghead a944cd08c6 vulkan: use amd mem allocator 2019-11-26 10:42:44 +01:00
Flyinghead 72c2ee1008 vulkan oit: RTT support
Fix Tr modifier volumes mem barrier
Simplify desc sets
2019-11-12 19:39:58 +01:00
Flyinghead b8c1d6657d vulkan: quad buffer, extract shader compiler
fetch color format, storage buffer alignment and stores/atomics support
at init
support for framebuffers used as input attachments
use Allocator instead of VulkanAllocator
return handles instead of unique handles
2019-11-10 10:16:18 +01:00
Flyinghead 920e2bf039 vulkan: return Device instead of UniqueDevice from context 2019-10-25 19:20:15 +02:00
Flyinghead 86818389ac move texture cache to a template class. vulkan: OSD on android
store texture in the cache map instead of the heap
make related functions member of the class (CollectCleanup, killtex ->
Clear)
refactor common OSD stuff into rend/osd
vulkan support for OSD
2019-10-21 16:39:16 +02:00
flyinghead dffaed7dd9 vulkan: prefer optimal depth format. use same format for rtt
Try to find an optimal depth format then fall back to linear
Use same depth format for rtt depth attachments
Allow RenderToTextureBuffer setting to be changed at runtime
Enable vulkan on windows
2019-10-16 10:40:06 +02:00
Flyinghead d28a7f45c5 vulkan: android support
align uniform buffers according to physical device requirements
destroy old swap chain before creating new one
some drivers don't support some 16-bit texture formats for optimal
tiling
2019-10-15 16:49:20 +02:00
Flyinghead e3a997b642 vulkan: direct framebuffer writes support
alternate between 2 texture drawers
Fix scissor scale when pixel_double is on
Ingore Present() when nothing has been rendered
2019-10-14 17:41:49 +02:00
Flyinghead af0b0eac42 vulkan: mipmap support 2019-10-13 18:42:28 +02:00
Flyinghead 06e1456d4f vulkan: memory allocator 2019-10-12 13:48:41 +02:00
Flyinghead 459a2b973e vulkan: make staging buffer visible to host for rtt2vram. Minor changes 2019-10-12 13:48:41 +02:00
Flyinghead 6406523720 vulkan: RTT support 2019-10-09 21:18:06 +02:00
Flyinghead e09e895f22 vulkan: better image update. Don't kill in-flight command buffers
Transition images back to transfer and update them instead of
deleting/recreating.
Keep track of in-flight texture command buffers and free them when idle.
2019-10-07 17:45:11 +02:00
Flyinghead b82a97853f vulkan: fog support 2019-10-06 17:02:17 +02:00
Flyinghead 8f8f270cfc vulkan: use separate command buffer to upload tex. Limit desc set size. 2019-10-06 14:31:39 +02:00
Flyinghead ebec2966d7 vulkan: create SamplerManager. Use staging buffer for textures
Samplers shouldn't be tied to a texture
Using a staging buffer fixes most texture glitches
2019-10-06 12:24:07 +02:00
Flyinghead d23b7bff7b vulkan: recreate swap chain on resize. flush samplers when updating tex 2019-10-05 16:09:28 +02:00
Flyinghead b1defae3f7 vulkan renderer - WIP 2019-10-05 11:50:14 +02:00