summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* shader/shader_ir: Track usage in input attribute and of legacy varyingsGravatar ReinUsesLisp2020-03-153-34/+64
|
* shader/shader_ir: Fix clip distance usage storesGravatar ReinUsesLisp2020-03-151-2/+1
|
* shader/shader_ir: Change declare output attribute to a switchGravatar ReinUsesLisp2020-03-151-9/+9
|
* Merge pull request #3508 from FernandoS27/page-tableGravatar bunnei2020-03-143-4/+25
|\ | | | | PageTable: move backing addresses to a children class as the CPU page table does not need them.
| * PageTable: move backing addresses to a children class as the CPU page table ↵Gravatar Fernando Sahmkow2020-03-143-4/+25
| | | | | | | | | | | | | | | | does not need them. This PR aims to reduce the memory usage in the CPU page table by moving GPU specific parameters into a child class. This saves 1Gb of Memory for most games.
* | Merge pull request #3500 from ReinUsesLisp/incompatible-typesGravatar Fernando Sahmkow2020-03-141-2/+39
|\ \ | | | | | | texture_cache: Report incompatible textures as black
| * | texture_cache: Report incompatible textures as blackGravatar ReinUsesLisp2020-03-121-2/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some games bind incompatible texture types to certain types. For example Astral Chain binds a 2D texture with 1 layer (non-array) to a cubemap slot (that's how it's used in the shader). After testing this in hardware, the expected "undefined behavior" is to report all pixels as black. We already have a path for reporting black textures in the texture cache. When textures types are incompatible, this commit binds these kind of textures. This is done on the API agnostic texture cache so no extra code has to be inserted on OpenGL or Vulkan. As a side effect, this fixes invalidations of ASTC textures on Astral Chain. This happened because yuzu detected a cube texture and forced 6 faces, generating a texture larger than what the TIC reported.
* | | Merge pull request #3499 from ReinUsesLisp/depth-2d-arrayGravatar Fernando Sahmkow2020-03-141-2/+4
|\ \ \ | | | | | | | | texture_cache/surface_params: Force depth=1 on 2D textures
| * | | texture_cache/surface_params: Force depth=1 on 2D texturesGravatar ReinUsesLisp2020-03-121-2/+4
| |/ / | | | | | | | | | | | | | | | | | | Sometimes games will sample a 2D array TIC with a 2D access in the shader. This causes bad interactions with the rest of the texture cache. To emulate what the game wants to do, force a depth=1 on 2D textures (not 2D arrays) and let the texture cache handle the rest.
* | | vk/gl_shader_decompiler: Silence assertion on computeGravatar ReinUsesLisp2020-03-132-6/+12
| | |
* | | vk_shader_decompiler: Fix default varying regressionGravatar ReinUsesLisp2020-03-131-2/+6
| | |
* | | maxwell_3d: Add padding words to XFB entriesGravatar ReinUsesLisp2020-03-131-2/+4
| | | | | | | | | | | | | | | Use INSERT_UNION_PADDING_WORDS instead of alignas to ensure a size requirement.
* | | gl_shader_decompiler: Fix implicit conversion errorsGravatar ReinUsesLisp2020-03-131-3/+3
| | |
* | | vk_shader_decompiler: Fix implicit type conversionGravatar Rodrigo Locatti2020-03-131-1/+1
| | | | | | | | | Co-Authored-By: Mat M. <mathew1800@gmail.com>
* | | vk_rasterizer: Implement transform feedback binding zeroGravatar ReinUsesLisp2020-03-132-0/+46
| | |
* | | vk_shader_decompiler: Add XFB decorations to generic varyingsGravatar ReinUsesLisp2020-03-131-16/+89
| | |
* | | vk_device: Enable VK_EXT_transform_feedback when availableGravatar ReinUsesLisp2020-03-132-7/+40
| | |
* | | vk_device: Shrink formatless capability name sizeGravatar ReinUsesLisp2020-03-133-26/+23
| | |
* | | shader/transform_feedback: Expose buffer strideGravatar ReinUsesLisp2020-03-133-1/+4
| | |
* | | vk_shader_decompiler: Use registry for specializationGravatar ReinUsesLisp2020-03-134-31/+37
| | |
* | | gl_rasterizer: Implement transform feedback bindingsGravatar ReinUsesLisp2020-03-133-10/+83
| | |
* | | gl_shader_decompiler: Decorate output attributes with XFB layoutGravatar ReinUsesLisp2020-03-131-29/+105
| | | | | | | | | | | | | | | | | | | | | We sometimes have to slice attributes in different parts. This is needed for example in instances where the game feedbacks 3 components but writes 4 from the shader (something that is possible with GL_NV_transform_feedback).
* | | shader/transform_feedback: Add host API friendly TFB builderGravatar ReinUsesLisp2020-03-134-0/+140
| | |
* | | Merge branch 'master' into shader-purgeGravatar Rodrigo Locatti2020-03-1315-47/+177
|\ \ \ | | |/ | |/|
| * | Merge pull request #3491 from ReinUsesLisp/polygon-modesGravatar bunnei2020-03-137-2/+99
| |\ \ | | | | | | | | gl_rasterizer: Implement polygon modes and fill rectangles
| | * | gl_rasterizer: Implement polygon modes and fill rectanglesGravatar ReinUsesLisp2020-03-097-2/+99
| | | |
| * | | Merge pull request #3483 from namkazt/patch-1Gravatar Fernando Sahmkow2020-03-121-1/+1
| |\ \ \ | | | | | | | | | | vk_rasterizer: fix mistype on SetupGraphicsImages
| | * | | vk_reasterizer: fix mistype on SetupGraphicsImagesGravatar Nguyen 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-uboGravatar Fernando Sahmkow2020-03-122-1/+9
| |\ \ \ \ | | | | | | | | | | | | vk_rasterizer: Support disabled uniform buffers
| | * | | | vk_rasterizer: Support disabled uniform buffersGravatar ReinUsesLisp2020-03-062-1/+9
| | | | | |
| * | | | | Merge pull request #3497 from FernandoS27/microprogfile-extendGravatar bunnei2020-03-121-2/+2
| |\ \ \ \ \ | | | | | | | | | | | | | | Small corrections and features to microprofile
| | * | | | | NVFlinger: Do the microprofile Flip after processing a valid frame.Gravatar Fernando Sahmkow2020-03-121-2/+2
| | | |_|_|/ | | |/| | |
| * | | | | Merge pull request #3496 from vitor-k/remove-enumGravatar bunnei2020-03-122-10/+10
| |\ \ \ \ \ | | |/ / / / | |/| | | | framebuffer_layout.h: drop the use of enum for screen dimensions
| | * | | | framebuffer_layout.h: drop the use of enum for screen dimensions.Gravatar Vitor Kiguchi2020-03-112-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | +clang format
| * | | | | Merge pull request #3494 from ReinUsesLisp/fix-cs-pipelineGravatar bunnei2020-03-114-29/+39
| |\ \ \ \ \ | | |/ / / / | |/| | | | gl_shader_manager: Fix interaction between graphics and compute
| | * | | | gl_shader_manager: Fix interaction between graphics and computeGravatar ReinUsesLisp2020-03-114-29/+39
| | | |_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | After a compute shader was set to the pipeline, no graphics shader was invoked again. To address this use glUseProgram to bind compute shaders (without state tracking) and call glUseProgram(0) when transitioning out of it back to the graphics pipeline.
| * | | | Merge pull request #3458 from FearlessTobi/voice-issuesGravatar bunnei2020-03-101-3/+17
| |\ \ \ \ | | |/ / / | |/| | | cubeb_sink: Don't discard other channels when performing downmixing
| | * | | cubeb_sink: Don't discard other channels when performing downmixingGravatar FearlessTobi2020-03-081-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, when performing downmixing, we would discard all channels except the left and right one. This implementation respects them when mixing down to Stereo. It is taken from this document: http://www.atsc.org/wp-content/uploads/2015/03/A52-201212-17.pdf. Fixes Luigis Mansion 3 cutscene and Bayonetta audio.
* | | | | gl_shader_decompiler: Initialize gl_Position on vertex shadersGravatar ReinUsesLisp2020-03-121-0/+4
| | | | |
* | | | | gl_shader_decompiler: Add missing {} on smem GLSL emissionGravatar ReinUsesLisp2020-03-121-1/+1
| | | | |
* | | | | gl_shader_decompiler: Fix regression in render target declarationsGravatar ReinUsesLisp2020-03-121-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | A previous commit introduced a way to declare as few render targets as possible. Turns out this introduced a regression in some games.
* | | | | engines/maxwell_3d: Add TFB registers and store them in shader registryGravatar ReinUsesLisp2020-03-094-6/+45
| | | | |
* | | | | shader/registry: Address feedbackGravatar ReinUsesLisp2020-03-093-13/+18
| | | | |
* | | | | gl_shader_decompiler: Add identifier to decompiled codeGravatar ReinUsesLisp2020-03-093-8/+16
| | | | |
* | | | | gl_shader_decompiler: Roll back to GLSL core 430Gravatar ReinUsesLisp2020-03-091-1/+1
| | | | | | | | | | | | | | | | | | | | RenderDoc won't build shaders if we use GLSL compatibility.
* | | | | const_buffer_engine_interface: Store component typesGravatar ReinUsesLisp2020-03-094-46/+27
| | | | | | | | | | | | | | | | | | | | | | | | | This is required for Vulkan. Sampling integer textures with float handles is illegal.
* | | | | yuzu/loading_screen: Remove unused shader progress modeGravatar ReinUsesLisp2020-03-092-17/+1
| | | | |
* | | | | gl_shader_cache: Reduce registry consistency to debug assertGravatar ReinUsesLisp2020-03-091-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Registry consistency is something that practically can't happen and it has a measurable runtime cost. Reduce it to a DEBUG_ASSERT.
* | | | | shader/registry: Cache tessellation stateGravatar ReinUsesLisp2020-03-093-3/+10
| | | | |
* | | | | shader/registry: Store graphics and compute metadataGravatar ReinUsesLisp2020-03-098-75/+176
| | | | | | | | | | | | | | | | | | | | | | | | | Store information GLSL forces us to provide but it's dynamic state in hardware (workgroup sizes, primitive topology, shared memory size).