Commit Graph
9336 Commits
Author SHA1 Message Date
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
baldurk 0522a636ad Add support for VK_KHR_pipeline_executable_properties 2019-08-15 13:05:06 +01:00
baldurk 715c18b591 Update valgrind suppressions for python 3.7 2019-08-15 13:04:58 +01:00
baldurk 6755fd96cb Update assert - we handle up to 8 swapchain images 2019-08-15 12:00:46 +01:00
baldurk a2c341966a Don't print about libGL last-second load during replay 2019-08-15 12:00:37 +01:00
baldurk 97afbf88c8 Fix documented return value of GetShaderReflection. Closes #1497 2019-08-15 08:30:34 +01:00
baldurk 3fe356af7d Add support for VK_EXT_subgroup_size_control 2019-08-14 18:26:28 +01:00
baldurk 9589d2d893 Add support for VK_KHR_imageless_framebuffer 2019-08-14 18:21:20 +01:00
baldurk 211d1b694f Make VK_Indirect less sensitive to event IDs changing 2019-08-14 14:35:14 +01:00
baldurk 272f993138 If a test already isn't available, don't overwrite that error 2019-08-14 14:15:52 +01:00
baldurk bb8172cfff Identify swiftshader in vulkan driver info 2019-08-14 14:15:52 +01:00
baldurk 29647ee391 Handle vulkan physical devices that don't have LINE polygon mode 2019-08-14 14:15:52 +01:00
baldurk d7c1007092 Don't enable primitive restart unless we're drawing a strip topology 2019-08-14 14:15:51 +01:00