aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
AgeCommit message (Collapse)Author
2020-02-26vk_swapchain: Silence TOCTOU race conditionReinUsesLisp
It's possible that the window is resized from the moment we ask for its size to the moment a swapchain is created, causing validation issues. To workaround this Vulkan issue request the capabilities again just before creating the swapchain, making the race condition less likely.
2020-02-25Merge pull request #3417 from ReinUsesLisp/r32ibunnei
texture: Implement R32I
2020-02-24Merge pull request #3425 from ReinUsesLisp/layered-framebufferbunnei
texture_cache: Implement layered framebuffer attachments
2020-02-22Merge pull request #3424 from ReinUsesLisp/spirv-layerbunnei
vk_shader_decompiler: Implement Layer output attribute
2020-02-21Merge pull request #3433 from namkazt/patch-1Rodrigo Locatti
renderer_vulkan: Add the rest of case for TryConvertBorderColor
2020-02-21Merge pull request #3434 from namkazt/patch-2Rodrigo Locatti
vk_shader: Implement ImageLoad
2020-02-21Merge pull request #3435 from namkazt/patch-3Rodrigo Locatti
vulkan: add DXT23_SRGB
2020-02-21vk_device: remove left over from other branchNguyen Dac Nam
2020-02-20clang-formatNguyen Dac Nam
2020-02-20shader_decompiler: only add StorageImageReadWithoutFormat when availableNguyen Dac Nam
2020-02-19Merge pull request #3414 from ReinUsesLisp/maxwell-3d-drawbunnei
maxwell_3d: Unify draw methods
2020-02-19shader_decompiler: add check in case of device not support ↵Nguyen Dac Nam
ShaderStorageImageReadWithoutFormat
2020-02-19vk_device: setup shaderStorageImageReadWithoutFormatNguyen Dac Nam
2020-02-19vk_device: add check for shaderStorageImageReadWithoutFormatNguyen Dac Nam
2020-02-18Merge pull request #3410 from ReinUsesLisp/vk-draw-indexbunnei
vk_shader_decompiler: Fix vertex id and instance id
2020-02-19vk_shader: add Capability StorageImageReadWithoutFormatNguyen Dac Nam
2020-02-19vk_shader: Implement function ImageLoad (Used by Kirby Start Allies)Nguyen Dac Nam
Please enter the commit message for your changes. Lines starting
2020-02-19fixups mistake auto commit.Nguyen Dac Nam
2020-02-19Update code structureNguyen Dac Nam
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2020-02-18add vertex UnsignedInt size RGBANguyen Dac Nam
2020-02-18add eBc2SrgbBlock to formatsNguyen Dac Nam
2020-02-18vulkan: add DXT23_SRGBNguyen Dac Nam
2020-02-18renderer_vulkan: Add the rest of case for TryConvertBorderColorNguyen Dac Nam
2020-02-16texture_cache: Implement layered framebuffer attachmentsReinUsesLisp
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-16vk_shader_decompiler: Implement Layer output attributeReinUsesLisp
SPIR-V's Layer is GLSL's gl_Layer. It lets the application choose from a shader stage (vertex, tessellation or geometry) which framebuffer layer write the output fragments to.
2020-02-15texture: Implement R32IReinUsesLisp
2020-02-14maxwell_3d: Unify draw methodsReinUsesLisp
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 VulkanReinUsesLisp
2020-02-13vk_shader_decompiler: Fix vertex id and instance idReinUsesLisp
Vulkan's VertexIndex and InstanceIndex don't match with hardware. This is because Nvidia implements gl_VertexID and gl_InstanceID. The math that relates these is: gl_VertexIndex = gl_BaseVertex + gl_VertexID gl_InstanceIndex = gl_InstanceIndex + gl_InstanceID To emulate it using what Vulkan's SPIR-V offers (the *Index variants) this commit substracts gl_Base* from gl_*Index to obtain the OpenGL and hardware's equivalent.
2020-02-04vk_rasterizer: Use noexcept variants of std::bitsetReinUsesLisp
Removes bounds checking from "texceptions" instances.
2020-02-03Merge pull request #3337 from ReinUsesLisp/vulkan-stagedbunnei
yuzu: Implement Vulkan frontend
2020-02-01Merge pull request #3282 from FernandoS27/indexed-samplersbunnei
Partially implement Indexed samplers in general and specific code in GLSL
2020-01-29yuzu: Implement Vulkan frontendReinUsesLisp
Adds a Qt and SDL2 frontend for Vulkan. It also finishes the missing bits on Vulkan initialization.
2020-01-29settings: Add settings for graphics backendReinUsesLisp
2020-01-26shader/memory: Implement ATOM.ADDReinUsesLisp
ATOM operates atomically on global memory. For now only add ATOM.ADD since that's what was found in commercial games. This asserts for ATOM.ADD.S32 (handling the others as unimplemented), although ATOM.ADD.U32 shouldn't be any different. This change forces us to change the default type on SPIR-V storage buffers from float to uint. We could also alias the buffers, but it's simpler for now to just use uint. While we are at it, abstract the code to avoid repetition.
2020-01-25Shader_IR: Address feedback.Fernando Sahmkow
2020-01-24Shader_IR: Correct Custom Variable assignment.Fernando Sahmkow
2020-01-24Shader_IR: Implement Injectable Custom Variables to the IR.Fernando Sahmkow
2020-01-24vk_shader_decompiler: Disable default values on unwritten render targetsReinUsesLisp
Some games like The Legend of Zelda: Breath of the Wild assign render targets without writing them from the fragment shader. This generates Vulkan validation errors, so silence these I previously introduced a commit to set "vec4(0, 0, 0, 1)" for these attachments. The problem is that this is not what games expect. This commit reverts that change.
2020-01-20Merge pull request #3330 from ReinUsesLisp/vk-blit-screenFernando Sahmkow
vk_blit_screen: Initial implementation
2020-01-20vk_blit_screen: Address feedbackReinUsesLisp
2020-01-20Merge pull request #3328 from ReinUsesLisp/vulkan-atomsbunnei
vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-V
2020-01-19Merge pull request #3322 from ReinUsesLisp/vk-front-facebunnei
vk_graphics_pipeline: Set front facing properly
2020-01-19vk_blit_screen: Initial implementationReinUsesLisp
This abstraction takes care of presenting accelerated and non-accelerated or "framebuffer" images to the Vulkan swapchain.
2020-01-19Merge pull request #3313 from ReinUsesLisp/vk-rasterizerbunnei
vk_rasterizer: Implement Vulkan's rasterizer
2020-01-19vk_shader_decompiler: Implement UAtomicAdd (ATOMS) on SPIR-VReinUsesLisp
Also updates sirit to include atomic instructions.
2020-01-18vk_graphics_pipeline: Set front facing properlyReinUsesLisp
Front face was being forced to a certain value when cull face is disabled. Set a default value on initialization and drop the forcefully set front facing value with culling disabled.
2020-01-18Merge pull request #3312 from ReinUsesLisp/atoms-u32bunnei
shader/memory: Implement ATOMS.ADD.U32
2020-01-17vk_rasterizer: Address feedbackReinUsesLisp
2020-01-16vk_rasterizer: Implement Vulkan's rasterizerReinUsesLisp
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.