summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_rasterizer.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-04-22gl_rasterizer: Fix buffers without sizeReinUsesLisp1-3/+3
On NVN buffers can be enabled but have no size. According to deko3d and the behavior we see in Animal Crossing: New Horizons these buffers get the special address of 0x1000 and limit themselves to 0xfff. Implement buffers without a size by binding a null buffer to OpenGL without a side. https://github.com/devkitPro/deko3d/blob/1d1930beea093b5a663419e93b0649719a3ca5da/source/maxwell/gpu_3d_vbo.cpp#L62-L63
2020-04-20Initialize quad_indexed_pass before uint8_passAmit Prakash Ambasta1-1/+1
Fixes Werror=reorder in gcc
2020-04-19fixed_pipeline_state: Pack attribute stateReinUsesLisp1-10/+10
Reduce FixedPipelineState's size from 1384 to 664 bytes
2020-04-17vk_compute_pass: Implement indexed quadsReinUsesLisp1-4/+13
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)
2020-04-16buffer_cache: Return handles instead of pointer to handlesReinUsesLisp1-17/+13
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.
2020-04-14vk_rasterizer: Default to 1 viewports with a size of 0ReinUsesLisp1-3/+6
Silence validation layer errors.
2020-04-11texture_cache: Remove preserve_contentsReinUsesLisp1-2/+2
preserve_contents was always true. We can't assume we don't have to preserve clears because scissored and color masked clears exist. This removes preserve_contents and assumes it as true at all times.
2020-04-11renderer_vulkan: Drop Vulkan-HppReinUsesLisp1-138/+147
2020-04-09VkRasterizer: Eliminate Legacy code.Fernando Sahmkow1-1/+0
2020-04-08Memory: Address Feedback.Fernando Sahmkow1-2/+2
2020-04-06Shader/Pipeline Cache: Use VAddr instead of physical memory for addressing.Fernando Sahmkow1-2/+1
2020-04-06Query Cache: Use VAddr instead of physical memory for adressing.Fernando Sahmkow1-2/+2
2020-04-06Buffer Cache: Use vAddr instead of physical memory.Fernando Sahmkow1-2/+2
2020-04-06Texture Cache: Use vAddr instead of physical memory for caching.Fernando Sahmkow1-4/+3
2020-04-06GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddrFernando Sahmkow1-10/+18
2020-03-19vk_rasterizer: Remove unused variableReinUsesLisp1-2/+0
2020-03-15vk_rasterizer: Implement layered clearsReinUsesLisp1-2/+2
2020-03-15vk_rasterizer: Fix vertex range assertReinUsesLisp1-1/+1
End can be equal to start in CalculateVertexArraysSize. This is quite common when the vertex size is zero.
2020-03-15vk_rasterizer: Reimplement clears with vkCmdClearAttachmentsReinUsesLisp1-40/+46
2020-03-13vk_rasterizer: Implement transform feedback binding zeroReinUsesLisp1-0/+42
2020-03-08vk_reasterizer: fix mistype on SetupGraphicsImagesNguyen Dac Nam1-1/+1
This should use Maxwell3D engine. Fixed some GPU error on Kirby and maybe other games.
2020-03-06vk_rasterizer: Support disabled uniform buffersReinUsesLisp1-0/+7
2020-02-28vk_rasterizer: Pass Maxwell registers to dynamic updatesReinUsesLisp1-20/+15
2020-02-28vk_state_tracker: Implement dirty flags for stencil propertiesReinUsesLisp1-0/+3
2020-02-28vk_state_tracker: Implement dirty flags for depth boundsReinUsesLisp1-0/+3
2020-02-28vk_state_tracker: Implement dirty flags for blend constantsReinUsesLisp1-0/+3
2020-02-28vk_state_tracker: Implement dirty flags for depth biasReinUsesLisp1-0/+3
2020-02-28vk_state_tracker: Implement dirty flags for scissorsReinUsesLisp1-0/+3
2020-02-28vk_state_tracker: Initial implementationReinUsesLisp1-3/+14
Add support for render targets and viewports.
2020-02-28gl_rasterizer: Remove dirty flagsReinUsesLisp1-27/+1
2020-02-24vk_shader_decompiler: Implement indexed texturesReinUsesLisp1-7/+14
Implement accessing textures through an index. It uses the same interface as OpenGL, the main difference is that Vulkan bindings are forced to be arrayed (the binding index doesn't change for stacked textures in SPIR-V).
2020-02-16texture_cache: Implement layered framebuffer attachmentsReinUsesLisp1-8/+9
Layered framebuffer attachments is a feature that allows applications to write attach layered textures to a single attachment. What layer the fragments are written to is decided from the shader using gl_Layer.
2020-02-14maxwell_3d: Unify draw methodsReinUsesLisp1-10/+0
Pass instanced state of a draw invocation as an argument instead of having two separate virtual methods.
2020-02-14vk_query_cache: Implement generic query cache on VulkanReinUsesLisp1-1/+20
2020-02-04vk_rasterizer: Use noexcept variants of std::bitsetReinUsesLisp1-4/+5
Removes bounds checking from "texceptions" instances.
2020-01-18vk_rasterizer: Address feedbackReinUsesLisp1-22/+28
2020-01-17vk_rasterizer: Implement Vulkan's rasterizerReinUsesLisp1-0/+1135
This abstraction is Vulkan's equivalent to OpenGL's rasterizer. It takes care of joining all parts of the backend and rendering accordingly on demand.