summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_rasterizer.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_rasterizer: Fix buffers without sizeReinUsesLisp2020-04-221-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
* Merge pull request #3718 from ReinUsesLisp/better-pipeline-stateRodrigo Locatti2020-04-211-10/+10
|\ | | | | fixed_pipeline_state: Pack structure, use memcmp and CityHash on it
| * fixed_pipeline_state: Pack attribute stateReinUsesLisp2020-04-191-10/+10
| | | | | | | | Reduce FixedPipelineState's size from 1384 to 664 bytes
* | Initialize quad_indexed_pass before uint8_passAmit Prakash Ambasta2020-04-201-1/+1
| | | | | | Fixes Werror=reorder in gcc
* | vk_compute_pass: Implement indexed quadsReinUsesLisp2020-04-171-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)
* Merge pull request #3600 from ReinUsesLisp/no-pointer-buf-cacheFernando Sahmkow2020-04-171-17/+13
|\ | | | | buffer_cache: Return handles instead of pointer to handles
| * buffer_cache: Return handles instead of pointer to handlesReinUsesLisp2020-04-161-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.
* | vk_rasterizer: Default to 1 viewports with a size of 0ReinUsesLisp2020-04-141-3/+6
|/ | | | Silence validation layer errors.
* Merge pull request #3636 from ReinUsesLisp/drop-vk-hppRodrigo Locatti2020-04-131-138/+147
|\ | | | | renderer_vulkan: Drop Vulkan-Hpp
| * renderer_vulkan: Drop Vulkan-HppReinUsesLisp2020-04-111-138/+147
| |
* | texture_cache: Remove preserve_contentsReinUsesLisp2020-04-111-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.
* VkRasterizer: Eliminate Legacy code.Fernando Sahmkow2020-04-091-1/+0
|
* Memory: Address Feedback.Fernando Sahmkow2020-04-081-2/+2
|
* Shader/Pipeline Cache: Use VAddr instead of physical memory for addressing.Fernando Sahmkow2020-04-061-2/+1
|
* Query Cache: Use VAddr instead of physical memory for adressing.Fernando Sahmkow2020-04-061-2/+2
|
* Buffer Cache: Use vAddr instead of physical memory.Fernando Sahmkow2020-04-061-2/+2
|
* Texture Cache: Use vAddr instead of physical memory for caching.Fernando Sahmkow2020-04-061-4/+3
|
* GPU: Setup Flush/Invalidate to use VAddr instead of CacheAddrFernando Sahmkow2020-04-061-10/+18
|
* vk_rasterizer: Remove unused variableReinUsesLisp2020-03-191-2/+0
|
* Merge pull request #3518 from ReinUsesLisp/scissor-clearsMat M2020-03-171-40/+46
|\ | | | | vk_rasterizer: Implement scissor clears and layered clears
| * vk_rasterizer: Implement layered clearsReinUsesLisp2020-03-151-2/+2
| |
| * vk_rasterizer: Reimplement clears with vkCmdClearAttachmentsReinUsesLisp2020-03-151-40/+46
| |
* | vk_rasterizer: Fix vertex range assertReinUsesLisp2020-03-151-1/+1
|/ | | | | End can be equal to start in CalculateVertexArraysSize. This is quite common when the vertex size is zero.
* vk_rasterizer: Implement transform feedback binding zeroReinUsesLisp2020-03-131-0/+42
|
* Merge pull request #3483 from namkazt/patch-1Fernando Sahmkow2020-03-131-1/+1
|\ | | | | vk_rasterizer: fix mistype on SetupGraphicsImages
| * vk_reasterizer: fix mistype on SetupGraphicsImagesNguyen Dac Nam2020-03-081-1/+1
| | | | | | This should use Maxwell3D engine. Fixed some GPU error on Kirby and maybe other games.
* | Merge pull request #3480 from ReinUsesLisp/vk-disabled-uboFernando Sahmkow2020-03-131-0/+7
|\ \ | | | | | | vk_rasterizer: Support disabled uniform buffers
| * | vk_rasterizer: Support disabled uniform buffersReinUsesLisp2020-03-061-0/+7
| |/
* | Merge pull request #3301 from ReinUsesLisp/state-trackerRodrigo Locatti2020-03-091-37/+32
|\ \ | |/ |/| video_core: Remove gl_state and use a state tracker based on dirty flags
| * vk_rasterizer: Pass Maxwell registers to dynamic updatesReinUsesLisp2020-02-281-20/+15
| |
| * vk_state_tracker: Implement dirty flags for stencil propertiesReinUsesLisp2020-02-281-0/+3
| |
| * vk_state_tracker: Implement dirty flags for depth boundsReinUsesLisp2020-02-281-0/+3
| |
| * vk_state_tracker: Implement dirty flags for blend constantsReinUsesLisp2020-02-281-0/+3
| |
| * vk_state_tracker: Implement dirty flags for depth biasReinUsesLisp2020-02-281-0/+3
| |
| * vk_state_tracker: Implement dirty flags for scissorsReinUsesLisp2020-02-281-0/+3
| |
| * vk_state_tracker: Initial implementationReinUsesLisp2020-02-281-3/+14
| | | | | | | | Add support for render targets and viewports.
| * gl_rasterizer: Remove dirty flagsReinUsesLisp2020-02-281-27/+1
| |
* | Merge pull request #3451 from ReinUsesLisp/indexed-texturesbunnei2020-03-051-7/+14
|\ \ | |/ |/| vk_shader_decompiler: Implement indexed textures
| * vk_shader_decompiler: Implement indexed texturesReinUsesLisp2020-02-241-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).
* | Merge pull request #3425 from ReinUsesLisp/layered-framebufferbunnei2020-02-241-8/+9
|\ \ | |/ |/| texture_cache: Implement layered framebuffer attachments
| * texture_cache: Implement layered framebuffer attachmentsReinUsesLisp2020-02-161-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.
* | Merge pull request #3414 from ReinUsesLisp/maxwell-3d-drawbunnei2020-02-191-10/+0
|\ \ | | | | | | maxwell_3d: Unify draw methods
| * | maxwell_3d: Unify draw methodsReinUsesLisp2020-02-141-10/+0
| |/ | | | | | | | | Pass instanced state of a draw invocation as an argument instead of having two separate virtual methods.
* / vk_query_cache: Implement generic query cache on VulkanReinUsesLisp2020-02-141-1/+20
|/
* vk_rasterizer: Use noexcept variants of std::bitsetReinUsesLisp2020-02-041-4/+5
| | | | Removes bounds checking from "texceptions" instances.
* vk_rasterizer: Address feedbackReinUsesLisp2020-01-181-22/+28
|
* vk_rasterizer: Implement Vulkan's rasterizerReinUsesLisp2020-01-171-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.