Commit Graph

9348 Commits

Author SHA1 Message Date
baldurk cf6a021db9 Ignore descriptor writes with descriptorCount == 0 2019-08-23 19:27:52 +01:00
baldurk c2fe16b44a Add support for D3D12On7 2019-08-22 18:43:48 +01:00
baldurk 346ee91f70 Store location not byte offset for loose globals in SPIR-V 2019-08-22 10:16:18 +01:00
baldurk 4c9fec4cb4 Fix calling convention on vulkan layer function. Closes #1500 2019-08-22 10:14:39 +01:00
baldurk c077e8f992 DXC does not have command line parameters in OpModuleProcessed 2019-08-20 15:33:12 +01:00
baldurk a0bc429bef Handle a source line corresponding to multiple instructions
* This can happen with inlined functions
2019-08-20 15:33:12 +01:00
baldurk 4f37a3b15a Handle typed UAV load/store from other formats than 32-bit DWORDs
* DX11 in feature level 11 didn't support these, but newer feature levels add
  additional support that requires decode/encode and truncation to the right
  width
2019-08-20 15:33:12 +01:00
baldurk 07158ad24c Fix support for triangle fans on GL/Vulkan 2019-08-20 15:33:12 +01:00
baldurk 27dcb72b93 Update vulkan headers to 1.1.120 2019-08-20 15:33:12 +01:00
baldurk 0a48833e12 Only make text overlay resources visible in necessary shader stages 2019-08-20 15:33:11 +01:00
Aliya Pazylbekova 5ce8fc7f4a Update name for compute pipelines to Compute Pipeline
From "Graphics Pipeline"
2019-08-16 19:43:42 +01:00
baldurk d60f3020c8 Fix uninitialised variable 2019-08-16 19:08:05 +01:00
baldurk 9e68cbe59b Fix typo in unit tests 2019-08-16 19:00:40 +01:00
baldurk ee43d4377c Account for pipeline specialisation constants when reflecting shaders 2019-08-16 17:38:35 +01:00
baldurk e71f986f84 Set warning level on SPIR-V files in VS project 2019-08-16 17:38:35 +01:00
baldurk 759d034def Update external code to use new SPIR-V reflector, remove old one 2019-08-16 17:38:35 +01:00
baldurk dba34759b4 Add disassembly to new reflector 2019-08-16 17:38:35 +01:00
baldurk 2c815ab93e Add new refactored & simplified SPIR-V reflector 2019-08-16 17:38:35 +01:00
baldurk 556cc5b4ae Refactor spec constants to be stored as uint64_t
* A single spec constant can only contain one scalar (vectors are created with
  composites). We can always store a scalar in uint64_t.
2019-08-16 17:38:35 +01:00
baldurk 0c3b827b35 Test specialization constant IDs and default values properly 2019-08-16 17:38:35 +01:00
baldurk dc660aa26c Allow building SPIR-V with debug info and check debug info in reflection 2019-08-16 17:38:35 +01:00
baldurk 47e10a5c2d Split some parts of SPIRVEditor into SPIRVProcessor
* This will then be shared by a read-only Reflector, with common processing
  to both happening in SPIRVProcessor with extra work happening in each child
  depending on whether it's reflecting/disassembling or editing.
2019-08-16 17:38:35 +01:00
baldurk 936876234c Move SPIR-V utility/parsing/editing code into rdcspv namespace
* Everything except the reflection code which will be replaced
2019-08-16 17:38:35 +01:00
baldurk f32298a4d8 Remove unused values from SPIRVEditor 2019-08-16 17:38:34 +01:00
baldurk e2b8085d78 Use generated helpers for SPIRVEditor 2019-08-16 17:38:34 +01:00
baldurk 9cc8ce6c3b Add generated code based on SPIR-V json grammar
* This includes both our own enums and per-opcode helper structs for decoding
2019-08-16 17:38:34 +01:00
baldurk e03f0c08e4 Add ConstIter for read-only SPIR-V processing 2019-08-16 16:12:01 +01:00
baldurk 3b00566ace Move GLSL reflection tests to common place for SPIR-V to use 2019-08-16 16:12:01 +01:00
baldurk 98c8178c11 Don't ignore output arrays from geometry shaders 2019-08-16 16:12:01 +01:00
baldurk 45b4159648 Set invalid input attribute mappings to -1 in SPIR-V reflection 2019-08-16 16:12:01 +01:00
baldurk 0122448091 Sort cbuffer variables by offset when reflecting SPIR-V
* Struct member declarations don't have to be in offset order, so we need to re-
  sort ourselves
2019-08-16 16:12:01 +01:00
baldurk 3ae359e3d0 Handle reflecting atomic counters in SPIR-V, for GL's SPIR-V 2019-08-16 16:12:01 +01:00
baldurk ee590dc09c For array input/outputs from geometry shader, don't reflect all elements 2019-08-16 16:12:01 +01:00
baldurk 512c1076ec Fix issue with builtin inputs/outputs in SPIR-V reflection 2019-08-16 16:12:01 +01:00
baldurk 67fc665bf1 Fix indirection for looking up SSBOs for member patching 2019-08-16 16:12:01 +01:00
baldurk 9d9aa49330 Store parent-relative byte offset in UBOs from GLSL reflection 2019-08-16 16:12:01 +01:00
baldurk 8ec76b1e44 Assign subsequent regIndex locations for matrix/arrays in GL reflection 2019-08-16 16:12:00 +01:00
baldurk 1552182d0a Sort GLSL reflected signature parameters with builtins first 2019-08-16 16:12:00 +01:00
baldurk a03538db4b Check gl_CullDistance with the other fixed-function GLSL vertex outputs 2019-08-16 16:12:00 +01:00
baldurk c9c920187d Add constant for push constant bind set 2019-08-16 16:12:00 +01:00
baldurk 01da5295a4 Sort ShaderConstant first by byteOffset, which is relative to its parent 2019-08-16 16:12:00 +01:00
baldurk d506b9efab Implement OpAtomicLoad for SPIR-V disassembly 2019-08-16 16:12:00 +01:00
baldurk 08a1ce2e76 Add support for VK_EXT_metal_surface and prefer it to MVK_macos_surface 2019-08-16 16:11:53 +01:00
baldurk 37242fd97e Fix assert on min/max swapchain image count 2019-08-16 10:25:41 +01:00
baldurk 9a0035d178 Print supported instance extensions as well as device extensions 2019-08-16 10:24:14 +01:00
baldurk ef269e2b92 Add support for VK_EXT_line_rasterization 2019-08-15 18:27:39 +01:00
baldurk 56aa5b16be Move VulkanRenderState initialisers to be in-line 2019-08-15 17:30:16 +01:00
baldurk 7bd13f5508 Handle extension pipeline structs when reconstructing pipeline info 2019-08-15 17:29:44 +01:00
baldurk f80964d84c Remove redundant manually maintained list of enabled vulkan extensions 2019-08-15 16:21:34 +01:00
baldurk b403c32b87 Fix viewport overlay when using -ve viewport height on KHR_maintenance1 2019-08-15 14:56:22 +01:00