Commit Graph

10576 Commits

Author SHA1 Message Date
baldurk 9d5d9fa0bb Default to lod 0 if lod parameter is missing 2020-04-16 18:41:58 +01:00
baldurk 831ffbf226 Add different OpCopy* opcodes 2020-04-16 18:41:58 +01:00
baldurk f2cb1ddc53 Implement remaining bit twiddling operations 2020-04-16 18:41:58 +01:00
baldurk a725a4e278 Add support for extended int math functions (with borrow/carry/overflow) 2020-04-16 18:41:58 +01:00
baldurk 60258bd57b Implement private variable storage 2020-04-16 18:41:58 +01:00
baldurk 2556614eb5 We support 3 parameter math ops on the GPU 2020-04-16 18:41:58 +01:00
baldurk e34183d887 Add support for GLSL ops with struct/pointer outputs
* This is the functions that return multiple values - Modf/ModfStruct and
  Frexp/FrexpStruct
2020-04-16 18:41:58 +01:00
baldurk 6ebd752a9d Hold onto ShaderDebugState pointer inside ThreadState during SetDst
* This avoids needing to pass it down to all possible child functions that might
  need it.
2020-04-16 18:19:08 +01:00
baldurk 217a693487 Add support for misc math GLSL opcodes that don't have struct variants
* step, smoothstep
* ldexp
* fma
* faceforward, reflect
2020-04-16 18:19:08 +01:00
cperthuisoc 0df63aa8d0 Added system packages as hidden folders in the Executable Path dialog
android-only change
2020-04-16 18:18:52 +01:00
cperthuisoc 827c2c24f8 Fixed the launch of adb when using the Android SDK path on Windows 2020-04-16 18:18:40 +01:00
baldurk 1db2947c86 Drop constexpr to work around gcc 5 compiler bug 2020-04-15 21:29:19 +01:00
baldurk 1f23e28893 Enable gather operations for all texture dimensions 2020-04-15 20:33:58 +01:00
baldurk 137a613179 Support pushing operations with limited precision over to the GPU
* This is primarily transcendentals - sqrt, pow, sin/cos, etc. It also includes
  operations derived from those (like length/normalize/etc)
2020-04-15 20:33:57 +01:00
baldurk d889ba7513 Implement OpKill support 2020-04-15 20:33:57 +01:00
baldurk c91414782a Implement some easy to support extensions 2020-04-15 20:33:57 +01:00
baldurk def5476cf2 Add tests for NMin/NMax/NClamp 2020-04-15 20:33:57 +01:00
baldurk c4437f6be0 Add logical comparisons and any/all operators 2020-04-15 20:33:57 +01:00
baldurk 44f46b6ae9 Clamp buffer offset for mesh view input
* If the calculated offset is larger than the buffer size we should be sure to
  clamp it.
2020-04-15 20:33:57 +01:00
baldurk 62bb77a9b6 Initialise indirect parameter values to 0 2020-04-15 20:33:57 +01:00
baldurk d76e944799 Implement radians/degrees conversion functions 2020-04-15 20:33:57 +01:00
baldurk c3a5d99bc0 Add support for matrix operations (transpose/determinant/inverse) 2020-04-15 20:33:57 +01:00
baldurk 26f5b6a4b4 Implement more rounding-related GLSL extended instructions 2020-04-15 20:33:57 +01:00
baldurk 39ed21c12f Process lifetime of Id params to GLSL ExtInsts 2020-04-15 20:33:57 +01:00
baldurk eeef227923 Properly process which capabilities are supported and which aren't 2020-04-15 20:33:56 +01:00
baldurk ca7c1bbba9 Support push constants the same as constant buffer data 2020-04-15 20:33:56 +01:00
baldurk f4e141e843 Handle invalid pointers in create info when viewport state is dynamic 2020-04-15 20:33:56 +01:00
Aliya Pazylbekova 772905c4d3 Basic Vulkan pixel history test
+ a small pixel history fix for figuring out if depth test failed
- the test demo is based on overlay demo, with a few modifications so
  far: added a draw that will fail on culling, added shader discard for
  any pixel with x = 150
- tests some basic failed tests: stencil, depth, culling, shader discard
2020-04-14 23:06:28 +01:00
baldurk 59688bfc4e Give better default names to unnamed global variables 2020-04-14 18:25:55 +01:00
baldurk 8e082ae109 Preserve order when combining structures in shader viewer 2020-04-14 18:25:18 +01:00
baldurk 07f60abf9e Implement OpIsNan and OpIsInf 2020-04-14 18:02:10 +01:00
baldurk 22dcb1f539 Centralise calculation of derivatives, implement OpFwidth* 2020-04-14 17:55:29 +01:00
baldurk 139d53e5e1 Add some type variants of supported glsl450 functions 2020-04-14 17:41:32 +01:00
baldurk 91e7563d09 Add support for glsl450 min/max/clamp 2020-04-14 17:16:18 +01:00
baldurk 7d0bbbda93 Patch all shader stages when using reserved binding
* If we're not using buffer device address, we need to patch the other stages
  since we're offsetting all bindings by 1.
2020-04-14 17:16:17 +01:00
baldurk 72d7e828b0 Add OpNot to bitwise tests 2020-04-14 17:16:17 +01:00
baldurk b8f18534e2 Test OpConvertFToU/S and OpConvertU/SToF 2020-04-14 17:16:17 +01:00
baldurk 97fb6b38ae Test OpCompositeExtract on vectors 2020-04-14 16:05:50 +01:00
baldurk e78aec6d36 Don't add extra prefix on constant buffer array variables. Closes #1828 2020-04-14 15:59:34 +01:00
baldurk b7bfbe3dba Refactor assembly tests to need less manual work
* We auto generate test cases, unique-ify identifiers, and add constants as
  needed
2020-04-14 15:45:45 +01:00
baldurk 80e1cbfba4 Don't duplicate workgroup for derivatives
* Because SPIR-V is SSA, we can use the current workgroup for all cross-group
  operations, knowing that the output ID of any such opcode can't also be the
  input (so doing workgroup operations one-at-a-time is still fine, we won't
  corrupt results of later threads by updating earlier ones.
2020-04-14 15:11:41 +01:00
baldurk b17b6e7c4f Optimise rdcspv::Editor destruction
* If we erase each nop individually it's O(n^2) in all the shifting needed.
  Since we can't iterate backwards we take advantage of the swap into external
  SPIR-V and instead just push-back every non-nop opcode.
2020-04-14 15:06:22 +01:00
baldurk ba1c719179 Add fmtlib to demos for string formatting 2020-04-14 14:25:49 +01:00
baldurk 5693c39fca Initialise gradCoords variable 2020-04-13 19:30:49 +01:00
baldurk e138fea5ce Ignore needing to create initial state for buffers on vulkan 2020-04-13 18:24:47 +01:00
baldurk 7bfee85edc Treat OpInBoundsAccessChain the same as OpAccessChain 2020-04-13 18:24:47 +01:00
baldurk 2318305c96 Implement OpVectorExtract/InsertDynamic 2020-04-13 18:24:47 +01:00
baldurk a9f7819bf7 Handle implicit lod samples by pushing in calculated derivatives 2020-04-13 18:24:47 +01:00
baldurk 8192dab204 Set result number of rows from texture sample 2020-04-13 18:24:47 +01:00
baldurk 97e3d0ba98 Handle bias operand by pushing it into the sampler 2020-04-13 18:24:47 +01:00