Commit Graph

18757 Commits

Author SHA1 Message Date
ReinUsesLisp 565d922014 shader: Accelerate pipeline transitions and use dirty flags for shaders 2021-07-22 21:51:29 -04:00
ameerj 90ff800962 shader: Fix BFE s32 undefined check
Our unit tests were hitting this exception.
2021-07-22 21:51:29 -04:00
ReinUsesLisp ecd481a0ca vk_compute_pipeline: Fix index comparison oversight on compute texture buffers 2021-07-22 21:51:29 -04:00
ReinUsesLisp 1f54f1ff26 shader: Fix error checking in bitfieldExtract and implement bitfieldInsert folding 2021-07-22 21:51:29 -04:00
ReinUsesLisp d835906b9f vulkan_device: Require shaderClipDistance and shaderCullDistance features 2021-07-22 21:51:29 -04:00
ReinUsesLisp 1f47476089 vk_graphics_pipeline: Guard against non-tessellation pipelines using patches 2021-07-22 21:51:29 -04:00
ReinUsesLisp e37ec2790d shader: Fix storage type when reading patches on tess control 2021-07-22 21:51:29 -04:00
ReinUsesLisp c8b0377a67 shader: Fix VMNMX selector B 2021-07-22 21:51:29 -04:00
Rodrigo Locatti 72b10edd15 shader: Fix bugs and build issues on GCC 2021-07-22 21:51:29 -04:00
ReinUsesLisp fa439cb6df shader: Fix render targets with null attachments 2021-07-22 21:51:29 -04:00
ReinUsesLisp 763adf56a6 shader: Increase the maximum number of storage buffers
Compute shaders spill uniform buffers on storage buffers, increasing the
expected number.
2021-07-22 21:51:29 -04:00
ReinUsesLisp 1d861a6e90 shader: Remove identity removal pass for better build times 2021-07-22 21:51:29 -04:00
ReinUsesLisp 4eec191801 shader: Add more strict validation the pass 2021-07-22 21:51:29 -04:00
ReinUsesLisp 21d50bd9bd shader: Fix forward referencing identity instructions when inserting phi 2021-07-22 21:51:29 -04:00
ReinUsesLisp 3c80ebf1e2 shader: Remove invalidated blocks in dead code elimination pass 2021-07-22 21:51:29 -04:00
ReinUsesLisp 12d7acf707 shader: Add missing UndoUse case for GetSparseFromOp 2021-07-22 21:51:29 -04:00
ReinUsesLisp 9b691a28d8 shader: Require dual source blending 2021-07-22 21:51:29 -04:00
ReinUsesLisp 04e042d3b3 shader: Simplify code in opcodes.h to fix Intellisense
Avoid using std::array to fix Intellisense not properly compiling this
code and disabling itself on all files that include it.

While we are at it, change the code to use u8 instead of size_t for the
number of instructions in an opcode.
2021-07-22 21:51:29 -04:00
ReinUsesLisp 052317e748 shader: Implement indexed textures 2021-07-22 21:51:28 -04:00
ameerj 3089fb1e2a shader: Refactor atomic_operations_global_memory 2021-07-22 21:51:28 -04:00
ameerj 8202ace3e9 shader: add missing include guard in half_floating_point_helper.h 2021-07-22 21:51:28 -04:00
ReinUsesLisp 172942911a shader: Fix gcc warnings 2021-07-22 21:51:28 -04:00
ReinUsesLisp 16a869571e shader: Inline common Value getters 2021-07-22 21:51:28 -04:00
ReinUsesLisp 9f5c43dd53 shader: Intrusively store in a block if it's sealed or not 2021-07-22 21:51:28 -04:00
ReinUsesLisp fecb87ebc8 cmake: Link to common in shader_recompiler 2021-07-22 21:51:28 -04:00
ReinUsesLisp 3c1229a7c5 shader: Improve goto removal algorithm complexity
Find sibling node containing a nephew searching from the nephew itself
instead of the uncle.
2021-07-22 21:51:28 -04:00
ReinUsesLisp 1a44a5cafa shader: Use memset to reset instruction arguments 2021-07-22 21:51:28 -04:00
ReinUsesLisp 9edc2bd70f shader: Inline common Value functions into the header 2021-07-22 21:51:28 -04:00
ReinUsesLisp 6236b611cf shader: Move microinstruction header to the value header 2021-07-22 21:51:28 -04:00
ReinUsesLisp 7769517fc0 shader: Move siblings check to a separate function and comment them out 2021-07-22 21:51:28 -04:00
ReinUsesLisp 7bf134b294 shader: Intrusively store register values in block for SSA pass 2021-07-22 21:51:28 -04:00
ReinUsesLisp 3a39124359 shader: Inline common Opcode and Inst functions 2021-07-22 21:51:28 -04:00
ReinUsesLisp b6bd6a5bce shader: Inline common IR::Block methods 2021-07-22 21:51:28 -04:00
ReinUsesLisp 8d1327bf78 shader: Use a small_vector for phi blocks 2021-07-22 21:51:28 -04:00
ReinUsesLisp c44139cda0 shader: Calculate number of arguments in an opcode at compile time 2021-07-22 21:51:28 -04:00
ReinUsesLisp 7066f9ef7b shader: Implement D3D samplers 2021-07-22 21:51:28 -04:00
ReinUsesLisp 5c187201ec shader: Add constant propagation for arithmetic right shifts 2021-07-22 21:51:28 -04:00
ReinUsesLisp 56aae7efcf shader: Simplify code for local memory 2021-07-22 21:51:28 -04:00
ReinUsesLisp e54171c1a9 shader: Add NVN storage buffer fallbacks
When we can't track the SSBO origin of a global memory instruction,
leave it as a global memory operation and assume these pointers are in
the NVN storage buffer slots, then apply a linear search in the shader's
runtime.
2021-07-22 21:51:28 -04:00
ReinUsesLisp eb7a932952 spirv: Fix ViewportMask 2021-07-22 21:51:28 -04:00
ameerj 688c89590c spirv: Replace Constant/ConstantComposite with Const helper 2021-07-22 21:51:28 -04:00
FernandoS27 4a97dd4483 shader: Address feedback 2021-07-22 21:51:28 -04:00
FernandoS27 b85c9d8e84 shader: Implement F2F (Imm) 2021-07-22 21:51:28 -04:00
FernandoS27 fbb642f433 shader: Implement IADD3.CC/.X 2021-07-22 21:51:28 -04:00
FernandoS27 f1a3f449d6 shader: Address feedback 2021-07-22 21:51:28 -04:00
FernandoS27 2f01c7fb62 shader: Add coarse derivatives 2021-07-22 21:51:28 -04:00
FernandoS27 b1e325f317 shader: Implement fine derivates constant propagation 2021-07-22 21:51:28 -04:00
FernandoS27 6c60109967 shader: Implement SR_Y_DIRECTION 2021-07-22 21:51:28 -04:00
ReinUsesLisp 99e6cd3916 shader: Fix Phi node types 2021-07-22 21:51:28 -04:00
ReinUsesLisp 6d540c6f2e shader: Fix memory barriers 2021-07-22 21:51:28 -04:00