Commit Graph

58 Commits

Author SHA1 Message Date
ameerj 22a4d26479 shader: Add integer attribute get optimization pass
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-29 19:03:49 -05:00
ReinUsesLisp d04e2dac6c shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
2021-11-16 22:11:29 +01:00
ReinUsesLisp 7f88938d72 shader: Add IsTextureScaled opcode 2021-11-16 22:11:28 +01:00
ReinUsesLisp 8cfa8cda16 shader: Add integer division opcodes 2021-11-16 22:11:28 +01:00
ReinUsesLisp 47d1d881cf shader: Add resolution down factor opcode 2021-11-16 22:11:27 +01:00
ReinUsesLisp f158fe9359 shader: Remove IAbs64 2021-07-22 21:51:39 -04:00
ReinUsesLisp 04c1dca457 shader: Move loop safety tests to code emission 2021-07-22 21:51:39 -04:00
lat9nq 3a70b6c79b shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
2021-07-22 21:51:35 -04:00
ReinUsesLisp 50e491f101 glasm: Use integer lod for TXQ 2021-07-22 21:51:33 -04:00
ReinUsesLisp ec19b0d7eb glasm: Implement Y direction 2021-07-22 21:51:33 -04:00
ReinUsesLisp 91a375b557 glasm: Implement undef instructions 2021-07-22 21:51:33 -04:00
ReinUsesLisp a5ce5f4a65 glasm: Fix usage counting on phi nodes 2021-07-22 21:51:33 -04:00
ReinUsesLisp 09ad2b5994 glasm: Implement global memory fallbacks 2021-07-22 21:51:33 -04:00
ReinUsesLisp 46edc93371 glasm: Implement int64 add and subtract 2021-07-22 21:51:33 -04:00
ReinUsesLisp e9a5390a92 glasm: Implement indirect attribute loads 2021-07-22 21:51:33 -04:00
ReinUsesLisp dd41025472 glasm: Implement SampleId 2021-07-22 21:51:33 -04:00
ReinUsesLisp 5f9dd18113 glasm: Implement IsHelperInvocation 2021-07-22 21:51:33 -04:00
ameerj 68fb25a223 glasm: Implement FSWZADD 2021-07-22 21:51:33 -04:00
ReinUsesLisp 2e5002f0bf glasm: Implement patch memory 2021-07-22 21:51:32 -04:00
ReinUsesLisp deb47706e9 glasm: Fix InvocationId declaration 2021-07-22 21:51:32 -04:00
ReinUsesLisp bbc4c8e6b6 glasm: Fix potential aliasing bug on cube array samples 2021-07-22 21:51:32 -04:00
ReinUsesLisp 1426ed05b0 glasm: Implement EmitVertex and EndPrimitive 2021-07-22 21:51:32 -04:00
ReinUsesLisp 9c318fe58b glasm: Implement ImageGradient 2021-07-22 21:51:32 -04:00
ReinUsesLisp d95e33ac44 glasm: Implement 64-bit shifts 2021-07-22 21:51:32 -04:00
ReinUsesLisp 1e64cbd23a glasm: Implement ImageFetch 2021-07-22 21:51:32 -04:00
ReinUsesLisp cfa232a5a5 glasm: Implement SelectU1 2021-07-22 21:51:32 -04:00
ReinUsesLisp 089e3a82b3 glasm: Implement gl_WorkGroupID 2021-07-22 21:51:32 -04:00
ReinUsesLisp 50dda4164a glasm: Implement TXQ and improve texture info reads 2021-07-22 21:51:32 -04:00
ReinUsesLisp e4835094aa glasm: Implement textureGather instructions 2021-07-22 21:51:32 -04:00
ReinUsesLisp 98b4463dbb glasm: Implement gl_FragDepth and gl_SampleMask stores 2021-07-22 21:51:32 -04:00
ReinUsesLisp 5c6dc51c69 shader: Read branch conditions from an instruction
Fixes the identity removal pass.
2021-07-22 21:51:32 -04:00
ReinUsesLisp 0b3a3f35e8 glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
2021-07-22 21:51:31 -04:00
ReinUsesLisp 009721f477 glasm: Improve texture sampling instructions 2021-07-22 21:51:31 -04:00
ameerj be403ea956 glasm: Implement rest of shared mem 2021-07-22 21:51:31 -04:00
ReinUsesLisp 87c847ddc3 glasm: Implement derivative instructions on GLASM 2021-07-22 21:51:31 -04:00
ameerj d0c4cca02d glasm: Implement local memory for glasm 2021-07-22 21:51:31 -04:00
ReinUsesLisp f2ae32fa76 glasm: Initial implementation of phi nodes on GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp 03f6d424ce glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
2021-07-22 21:51:31 -04:00
ameerj 8a556b49cf glasm: Implement Storage atomics
StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit
result into the register
2021-07-22 21:51:31 -04:00
ReinUsesLisp 7273fcab95 glasm: Implement shuffle and vote instructions on GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp 3e0e8c952d glasm: Add MUFU instructions to GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp 8a77a1426b glasm: Implement IAbs64 and INeg64 on GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp c5055cade9 glasm: Implement SelectU64 on GLASM 2021-07-22 21:51:31 -04:00
ameerj 55801889e1 glasm: Implement storage atomic ops 2021-07-22 21:51:31 -04:00
ReinUsesLisp cbac486530 glasm: Add conversion instructions to GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp db3a10b384 glasm: Add fp min/max insts and fix store for fp64 on GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp 763b4a8b16 glasm: Add logical instructions on GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp 45be6d11cc glasm: Add floating-point comparisons on GLASM 2021-07-22 21:51:30 -04:00
ameerj fd6393cb14 emit_glasm: Implement more integer alu ops 2021-07-22 21:51:30 -04:00
ameerj c13b6d8f86 glasm: Reimplement bitwise ops and BFI/BFE 2021-07-22 21:51:30 -04:00