Commit Graph

64 Commits

Author SHA1 Message Date
2c2e019a44 shader_recompiler: TXQ: Skip QueryLevels when possible 2023-01-28 16:25:18 -05:00
a4472b5526 video_core: Fix few issues in Tess stage 2022-11-07 15:42:42 +08:00
75596c07e0 video_core: Fix SNORM texture buffer emulating error (#9001) 2022-11-04 02:39:42 -04:00
9a95c7fa14 video_core: Generate mipmap texture by drawing 2022-09-20 11:55:43 +08:00
99ceb03a1c general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
ad58d7eae7 shaders: Add U64->U32x2 Atomic fallback functions 2022-01-29 19:55:53 -05:00
14ac0c2923 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
e66d5b88a6 shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
2021-11-16 22:11:29 +01:00
c15332c44f shader: Add IsTextureScaled opcode 2021-11-16 22:11:28 +01:00
95761cc6a7 shader: Add integer division opcodes 2021-11-16 22:11:28 +01:00
fb924ea85c shader: Add resolution down factor opcode 2021-11-16 22:11:27 +01:00
4397053d5c shader: Remove IAbs64 2021-07-22 21:51:39 -04:00
808ef97a08 shader: Move loop safety tests to code emission 2021-07-22 21:51:39 -04:00
373f75d944 shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
2021-07-22 21:51:35 -04:00
83db7abae6 glasm: Use integer lod for TXQ 2021-07-22 21:51:33 -04:00
f58f79c85d glasm: Implement Y direction 2021-07-22 21:51:33 -04:00
b9c8814ea9 glasm: Implement undef instructions 2021-07-22 21:51:33 -04:00
9fbfe7d676 glasm: Fix usage counting on phi nodes 2021-07-22 21:51:33 -04:00
c721767bcc glasm: Implement global memory fallbacks 2021-07-22 21:51:33 -04:00
0794273870 glasm: Implement int64 add and subtract 2021-07-22 21:51:33 -04:00
e30d4fa976 glasm: Implement indirect attribute loads 2021-07-22 21:51:33 -04:00
89e341d56a glasm: Implement SampleId 2021-07-22 21:51:33 -04:00
77d8c44b68 glasm: Implement IsHelperInvocation 2021-07-22 21:51:33 -04:00
36d040da70 glasm: Implement FSWZADD 2021-07-22 21:51:33 -04:00
a569ac418e glasm: Implement patch memory 2021-07-22 21:51:32 -04:00
164b8c1ec5 glasm: Fix InvocationId declaration 2021-07-22 21:51:32 -04:00
0a54291c9c glasm: Fix potential aliasing bug on cube array samples 2021-07-22 21:51:32 -04:00
3d0ffc6ad0 glasm: Implement EmitVertex and EndPrimitive 2021-07-22 21:51:32 -04:00
f79cbbf814 glasm: Implement ImageGradient 2021-07-22 21:51:32 -04:00
291f220be3 glasm: Implement 64-bit shifts 2021-07-22 21:51:32 -04:00
4a22942f45 glasm: Implement ImageFetch 2021-07-22 21:51:32 -04:00
2e0d56da7e glasm: Implement SelectU1 2021-07-22 21:51:32 -04:00
e8ed904805 glasm: Implement gl_WorkGroupID 2021-07-22 21:51:32 -04:00
0a42277a4f glasm: Implement TXQ and improve texture info reads 2021-07-22 21:51:32 -04:00
3d3ed53511 glasm: Implement textureGather instructions 2021-07-22 21:51:32 -04:00
0fa421f82f glasm: Implement gl_FragDepth and gl_SampleMask stores 2021-07-22 21:51:32 -04:00
9bb3e008c9 shader: Read branch conditions from an instruction
Fixes the identity removal pass.
2021-07-22 21:51:32 -04:00
ec6fc5fe78 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
bf2949df10 glasm: Improve texture sampling instructions 2021-07-22 21:51:31 -04:00
d4f9c798d6 glasm: Implement rest of shared mem 2021-07-22 21:51:31 -04:00
464f13fe0b glasm: Implement derivative instructions on GLASM 2021-07-22 21:51:31 -04:00
057dee4856 glasm: Implement local memory for glasm 2021-07-22 21:51:31 -04:00
bf5e48ffe4 glasm: Initial implementation of phi nodes on GLASM 2021-07-22 21:51:31 -04:00
d54d7de40e 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
7ff5851608 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
c4fd6b55bc glasm: Implement shuffle and vote instructions on GLASM 2021-07-22 21:51:31 -04:00
decda4a2c7 glasm: Add MUFU instructions to GLASM 2021-07-22 21:51:31 -04:00
5b18a12df2 glasm: Implement IAbs64 and INeg64 on GLASM 2021-07-22 21:51:31 -04:00
0839e46736 glasm: Implement SelectU64 on GLASM 2021-07-22 21:51:31 -04:00
80813b1d14 glasm: Implement storage atomic ops 2021-07-22 21:51:31 -04:00