-
2691b638
by baldurk
at 2022-01-25T15:19:21+00:00
Bump version to 1.19
-
a8b6981b
by baldurk
at 2022-01-25T15:19:39+00:00
Fix backwards check in vulkan fatal error detection. Refs #2460
-
e607e45a
by baldurk
at 2022-01-25T15:19:41+00:00
Handle multiple switch statements in DXBC shaders
* Without this when a default statement is hit we would never properly process
the matching endswitch
-
ec5c5d98
by baldurk
at 2022-01-25T15:19:44+00:00
Handle failed maps as fatal errors on vulkan. Refs #2460
* We manually check for NULL returned map pointers and treat this as a fatal
error, even if the map itself returns VK_SUCCESS
-
c86261e7
by Remi Palandri
at 2022-01-25T19:49:34+00:00
add gl_ViewIndex to PS-debugprintf
-
387d12db
by Jordan Justen
at 2022-01-27T11:59:25+00:00
glsl_shaders: Update setEnvInput() call for non-SPIR-V GL shaders
Ref: https://github.com/KhronosGroup/glslang/issues/2872
Ref: https://github.com/KhronosGroup/glslang/commit/81cc10a498b25a90147cccd6e8939493c1e9e20e
After discussions with the glslang developers, it appears that the
parameters in glslang's setEnvInput() function are a bit more geared
towards SPIRV that the documentation implied.
After the glslang commit above, and discussions with the developer, it
seems that the 3rd parameter to setEnvInput() should only be set to
EShClientOpenGL if you want to enable the ARB_gl_spirv extension.
The 4th parameter to setEnvInput() is version, but it is used to
indicate the version of either the KHR_vulkan_glsl extention for
vulkan, or the ARB_gl_spirv extension for OpenGL with SPIR-V.
So, if the shader type is neither ShaderType::Vulkan, nor
ShaderType::GLSPIRV, we should specify glslang::EShClientNone for the
3rd parameter and 0 for the 4th parameter of setEnvInput().
This doesn't actually impact renderdoc with the currently bundled
glslang 8.13.3743, because they failed to pass the environment through
during pre-processing.
But, this changed in this glslang commit in 11.2.0:
* 6274ec5c ("Pass environment through PreprocessDeferred")
* https://github.com/KhronosGroup/glslang/commit/6274ec5c
After this change, renderdoc passes the environment through to the
pre-processor, and with the current parameters to setEnvInput(),
glslang will start to define GL_SPIRV in the shaders during
pre-processing.
Then, in renderdoc's glsl_globals.h, GL_SPIRV causes the pre-processor
to set:
* #define IO_LOCATION(l) layout(location = l)
which then causes Mesa to produce this error when compiling the shader:
* GL_VERTEX_SHADER compile error: 0:239(2): error: shader output
explicit location requires GL_ARB_separate_shader_objects extension
or GLSL 4.20
Signed-off-by: Jordan Justen <jljusten@gmail.com>
-
9d0511bf
by baldurk
at 2022-01-28T13:09:31+00:00
Ignore typecast for pixel context view, on custom shaders. Closes #2459
* When we've applied a custom shader we're now displaying from our internal
custom shader output texture which means we need to ignore some display
properties. These are already ignored in RenderTexture where the custom shader
is applied, but we also need to ignore it in the context display.
-
54fa3a78
by baldurk
at 2022-01-28T13:49:48+00:00
Recalculate scrollbar limits after switching textures. Closes #2470
-
66e377f4
by baldurk
at 2022-01-28T17:21:56+00:00
Destroy framebuffer before recreating it, and don't leak loadRP/loadFBs
-
4f6d6d9c
by baldurk
at 2022-01-31T10:34:34+00:00
Fatal errors should always print to stderr
-
6ca3d00f
by baldurk
at 2022-01-31T12:02:26+00:00
Print an error message for process creation failures on windows
-
0d7dcabd
by baldurk
at 2022-01-31T17:25:23+00:00
Clamp version for vulkan 1.3 drivers that don't support BDA cap/replay
-
3ac4bd0e
by baldurk
at 2022-01-31T19:14:08+00:00
Refactor custom shaders to abstract binding differences. Closes #2458
* Newly written shaders and any updated shaders can now use pre-defined macros
to abstract away binding differences between APIs, so custom shaders will be
more portable in particular shaders written in HLSL for D3D or GLSL on OpenGL
won't break on vulkan because they refer to incorrect binds.
-
3d49524d
by baldurk
at 2022-01-31T19:28:08+00:00
Don't enable functionality not supported by the current physical device
-
7320aa27
by baldurk
at 2022-01-31T20:38:06+00:00
Add ShaderSourcePrefix to docs index
-
f40e1fe9
by baldurk
at 2022-02-01T00:09:35+00:00
Fix docstring references to ShaderSourcePrefix
-
4bf2e00b
by baldurk
at 2022-02-01T01:07:25+00:00
Switch custom prefixes from defines to static constants
-
4b748c63
by Remi Palandri
at 2022-02-02T11:04:42+00:00
fixing valid issues
-
e42b0ff2
by baldurk
at 2022-02-02T15:00:43+00:00
Refactor ShaderVariable use and non-32-bit precision. Closes #2466
-
e4fd52c3
by baldurk
at 2022-02-02T15:00:44+00:00
Fix generation of NaNs in vulkan shader debug zoo test
-
d844d3af
by baldurk
at 2022-02-02T15:00:44+00:00
Fix missing stencil store op in discard zoo test
-
fdda8be9
by baldurk
at 2022-02-02T15:00:44+00:00
Allow watch variables to specify a color-swatch with ,c. Closes #2475
-
e06a01d0
by baldurk
at 2022-02-02T16:13:25+00:00
Fix compilation on linux
-
4e889598
by baldurk
at 2022-02-02T17:00:26+00:00
Fix clang warning about unused break
-
76e273cb
by baldurk
at 2022-02-03T11:13:16+00:00
Fix another clang warning
-
f7c34cdb
by Leonard Tsai
at 2022-02-03T18:49:10+00:00
Support VK_KHR_depth_stencil_resolve attachment in pipeline state view
Depth stencil resolve attachments were not being serialized and exposed in the pipeline state view. This change serializes the attachment id for the depth-stencil resolve attachment so that it can show up in the pipeline state view.
Update name of depth/stencil in pipeline viewer
Fix clang formatting
Update struct type
-
f082d53c
by Steve Karolewics
at 2022-02-04T12:38:27+00:00
Fix D3D12 shader debugging with root sig deny flags
The root signature can specify deny flags for shader types. If this
is the case for a shader we're debugging, we need to ensure that
the flags are cleared to allow sample/gather instructions to work.
-
68401cae
by baldurk
at 2022-02-04T16:45:14+00:00
Generate larger staging buffer for vulkan discard patterns
* The pattern buffer is 64x8 but doing copies to each target location can cause
issues on very large textures. Instead we generate a 256x256 buffer with
repetitions on load (which is still only ~256-512kB), and copy from that. We
can still do truncated copies so we don't need a smaller buffer, and this
greatly reduces the number of buffer copies issued.
-
4d0aba77
by baldurk
at 2022-02-04T16:45:14+00:00
Include non-semantic debuginfo grammar
-
401e9957
by baldurk
at 2022-02-04T16:45:14+00:00
Don't disassemble most vulkan debug info SPIR-V opcodes
* These are metadata for us, not for general consumption in a user-facing
disassembly
-
0dbd579c
by baldurk
at 2022-02-04T16:45:14+00:00
Prefer source debugging when we find vulkan debug info
-
c90a6a72
by baldurk
at 2022-02-04T16:45:14+00:00
Process source and global variable information from vulkan debug info
-
a12a320f
by baldurk
at 2022-02-04T16:45:14+00:00
Skip debug info OpExtInst during debugging
-
e6cb5ca8
by baldurk
at 2022-02-04T16:45:14+00:00
Store extended vulkan debug information
-
b562c462
by baldurk
at 2022-02-04T16:45:14+00:00
Apply vulkan debug information for source variable mappings
-
1033403d
by baldurk
at 2022-02-04T16:45:14+00:00
Explicitly sort source vars by last write to underlying ID
* This system works both for debug info local variables and auto-generated named
variables
-
3b38d298
by baldurk
at 2022-02-04T16:45:15+00:00
Include constants in shader changes when debug info references them
-
70200ed0
by baldurk
at 2022-02-04T16:45:15+00:00
Account for locals within loops coming from later mappings
* We invert the mapping so that instead of each local having its list of
locations and picking the latest at any point, we track the "current" and
update the mappings with any changes we come across at each step.
-
2f0be387
by baldurk
at 2022-02-04T16:45:15+00:00
Use DebugSource and DebugLine/DebugNoLine for line-number info
-
309a2aad
by baldurk
at 2022-02-04T16:45:15+00:00
Add variable debug variables when we have debug info
* We don't want to wait until the first store to do this, since the source
variables are added at the appropriate scope - even before the first store.
-
7f130077
by baldurk
at 2022-02-04T16:45:15+00:00
When source debugging, skip non-mapped instructions
* We entirely skip over any instructions that don't have a source mapping. These
are assumed to be filler instructions or others that don't correspond usefully
to anything in the source.
-
7266dd89
by baldurk
at 2022-02-04T16:45:15+00:00
Read inline information for vulkan debug and use it to get callstack
-
e58cb9a7
by baldurk
at 2022-02-04T16:45:15+00:00
Fix stepping over/into on instructions in the same function
-
6ab4c1ad
by baldurk
at 2022-02-04T16:45:15+00:00
Add support for VK_KHR_fragment_shading_rate. Closes #2426
-
c6c93efd
by Steve Karolewics
at 2022-02-04T20:04:19+00:00
Fix shader debugging display of high-level boolean variables
-
5f61bf15
by Remi Palandri
at 2022-02-04T20:04:32+00:00
erase all liveIDs when replacing resources
-
3471e64c
by follower
at 2022-02-05T18:53:25+00:00
Fix incorrect link for `include-bin` credit.
The current link appears to be an accidental duplication of the URL from the project listed immediately above.
This commit appears to be the origin of the duplicated URL: https://github.com/baldurk/renderdoc/commit/b5c7944038572eebffde32e1279c45c4f6d84153#diff-4673a3aba01813b595de187a7a6e9e63a3491d55821606fecd9f13a10c188a1dL98
Note: This "correct" link is to the original repository URL which appears to no longer exist.
For reference:
* Original commit with the inclusion of `include-bin`: https://github.com/baldurk/renderdoc/commit/864fdbe179b6c1f20cae7c753fb018bec74b5738
* Original issue which lead to the inclusion: https://github.com/baldurk/renderdoc/issues/314#issuecomment-238204556
-
f552b1b4
by Steve Karolewics
at 2022-02-08T16:27:55+00:00
Prevent focus reset when typing in the compute debug selector
-
7a0a8fa8
by baldurk
at 2022-02-08T18:07:38+00:00
explicitly disable shading rate attachment when using old RP create
-
c853dbcd
by baldurk
at 2022-02-08T18:07:38+00:00
Fix version check on vulkan not storing instance version properly
-
59764443
by baldurk
at 2022-02-08T18:07:38+00:00
Name some internal image and imageview objects for vulkan
-
b78f4b56
by baldurk
at 2022-02-08T18:07:38+00:00
Flush some commands before object destruction
-
a675f005
by baldurk
at 2022-02-08T18:07:38+00:00
Downgrade error to warning for compute path on missing spec constants
-
9a758463
by baldurk
at 2022-02-08T18:07:38+00:00
Only provide mutable format list when needed
-
f37516bf
by baldurk
at 2022-02-08T18:07:38+00:00
Use depth image specifically for depth-compare tests in shader debug zoo
* The spec doesn't guarantee that non-depth formats support comparisons like
this.
-
b7e13e7d
by baldurk
at 2022-02-08T18:07:38+00:00
Update demos vulkan headers to 1.3
-
8f4f7f57
by baldurk
at 2022-02-08T18:07:38+00:00
KHR_synchronization2 is only enabled if the feature is enabled
-
a8e7b64a
by baldurk
at 2022-02-08T18:07:38+00:00
Don't set events on replay, they may be device-only
* We also don't use the 'real' events for our handling anyway, so their
set/reset status doesn't matter.
-
b38f8b83
by baldurk
at 2022-02-08T18:07:39+00:00
Fix some cases where buffer memory requirements were assumed to be tight
* It's possible for a buffer to require more memory than its size (e.g. up to
some alignment)
-
2c98999a
by baldurk
at 2022-02-08T18:07:39+00:00
Fix mistaken flag set
-
5a62e27e
by baldurk
at 2022-02-08T18:07:39+00:00
Fix a couple of technical validation failures
-
2312fa45
by baldurk
at 2022-02-08T18:07:39+00:00
Fix some missing sType's on input structures
-
46fb3ac6
by baldurk
at 2022-02-08T18:07:39+00:00
Fix push constant range not using full stage flags
* The spec requires that we pass all stage flags for the declared range, even if
we're only binding for compute.
-
afb82971
by baldurk
at 2022-02-08T18:07:39+00:00
Create separate pipeline & render pass for sRGB 8-bit remapping
* Normally we only need one remap per bitness and per type, but for 8-bit
float/unorm we need to distinguish between plain unorm and sRGB unorm.
-
f0428e68
by baldurk
at 2022-02-08T18:07:39+00:00
Add extra protection for valid queries to GetBufferData
-
b094c45d
by baldurk
at 2022-02-08T18:07:39+00:00
Create separate pipeline and dummy images for depth-format, for DRefs
* Any pipeline that uses DRef on images (without descriptor indexing at least,
which we don't assume) must be passed depth-formatted images. This includes
the dummy images we bind to other slots.
* At the same time we limit depth textures to just 1D, 2D, 2DMS - ignoring 3D
and Cube.
-
f7aec1a5
by baldurk
at 2022-02-09T18:01:30+00:00
Implement unstripped SPIR-V shader blob loading from magic value tags
-
53b507c4
by baldurk
at 2022-02-09T18:01:39+00:00
Add names to some more objects
-
b05830d6
by baldurk
at 2022-02-09T18:01:39+00:00
Respect the original subpass contents when replaying renderpasses
* We also need to take care to patch this now, when replaying a single draw that
was originally in a secondary but we replay in a primary.
-
574d87e7
by baldurk
at 2022-02-09T18:01:39+00:00
Force use of load RPs/FBs for pixel history
* When we're splitting every draw and execute to get pre- and post-mod colours,
we resume renderpasses with load RPs for obvious reasons. The inheritance info
needs to match in secondary command buffers, so we force it over
conditionally.
-
a661020c
by baldurk
at 2022-02-09T18:01:39+00:00
Fix incorrect check for image view type as array in pixel history
-
469f17a6
by baldurk
at 2022-02-09T18:01:40+00:00
Vulkan images in preinitialized layout must always be patched to general
* Originally the idea was that on first use in a Loading pass we'd transition
from preinitialized to whatever the application wanted, and then subsequently
on repeated replays it would be left in general. However this doesn't account
for initial contents and initial frame states, which will end up putting the
image in GENERAL anyway. This is fine as it still satisfies the requirements
if needed.
-
83dc0b78
by baldurk
at 2022-02-09T18:01:40+00:00
Ignore validation message about unwritten outputs.
-
2c2e76fb
by baldurk
at 2022-02-09T18:01:40+00:00
Ensure even for non-indexed mesh picks we bind dummy buffer
* The descriptor needs to be valid even if it's not used, when not using
descriptor indexing rules, so ensure the IB buffer is at least some minimum
size.
-
544e6dbf
by baldurk
at 2022-02-09T18:01:40+00:00
Strip index decorations in vulkan postvs when patching to compute
-
d5e6a735
by baldurk
at 2022-02-09T18:01:40+00:00
Pass through names from capture when EXT_debug_* is supported
-
e332b43a
by baldurk
at 2022-02-09T18:01:40+00:00
Use a compatible renderpass for fetching stencil data for readback
-
38fa7a1a
by baldurk
at 2022-02-09T18:54:21+00:00
Fix compile error
-
3d07a0b5
by Remi Palandri
at 2022-02-10T10:24:17+00:00
lazily fetch subsamples in MSAA textures
-
ec5c14de
by baldurk
at 2022-02-10T16:36:19+00:00
Add support for multiple batched presents on vulkan. Closes #2492
-
c96f9d37
by Remi Palandri
at 2022-02-11T11:04:47+00:00
add support for VK_QCOM_render_pass_shader_resolve
-
4860e87c
by Remi Palandri
at 2022-02-11T11:09:43+00:00
move replay to call app's endRP/nextsub calls
-
745bff2e
by baldurk
at 2022-02-11T11:52:36+00:00
Fix tests not passing a window title
-
874134da
by baldurk
at 2022-02-11T16:44:55+00:00
Disable DXIL validator entirely as it sometimes crashes on valid code
-
755c4254
by baldurk
at 2022-02-14T11:32:20+00:00
Save current renderpass before it is unset in vkCmdEndRenderPass
* We need this to look up which renderpass we were in previously
-
9b9a67e8
by baldurk
at 2022-02-14T11:57:49+00:00
Make sure to fetch egl functions via eglGPA if necessary. Refs #2494
* Extensions will likely not be exported as real symbols, so we need to handle
the case of needing to fetch the onward pointer via eglGetProcAddress.
* We do this for non-extensions too, to try to fetch core functions that are
still NULL after hook initialisation. Since we do wholesale dlopen/dlsym
replacement on linux we cannot handle the case where an application checks for
function validity via just normal dlsym returning something, but then the
function doesn't exist in the real libEGL.so. We have no way of reporting that
the function actually doesn't exist because we have nowhere to call, and it
will crash. Trying to fetch the pointer via eglGPA is unlikely to succeed but
should do no harm as we don't set these function pointers anywhere else.
-
a2df3de6
by baldurk
at 2022-02-14T13:32:14+00:00
Update RGA backend to include gfx1034
-
4fe19177
by baldurk
at 2022-02-14T13:38:23+00:00
Update asic count
-
d1858f44
by Remi Palandri
at 2022-02-14T21:02:27+00:00
add support for VK_QCOM_FDM_offset
-
da979b23
by baldurk
at 2022-02-15T17:15:48+00:00
Don't omit opaque types for real empty structs in DXIL editing
-
435ed5ad
by baldurk
at 2022-02-15T17:15:48+00:00
Mark literal string creation as constexpr
* The compiler doesn't seem to do much with this in debug, but it might help in
release.
-
99adcc61
by baldurk
at 2022-02-15T17:15:48+00:00
Allow multiple remote servers on one hostname, on different ports
* When a port is specified (with the usual :12345 suffix on the hostname) we use
that for remote replay connections. We disable target control enumeration
since that requires a port _range_ and captured applications self-assign those
ports. Those can still be accessed via a normal unsuffixed remote specifier -
even if there is no remote server running on the default port.
-
142fe7c8
by baldurk
at 2022-02-15T17:15:48+00:00
Allow editing the marker path as a location
* This lets you paste in a location to jump directly somewhere, for example.
-
e99260ab
by baldurk
at 2022-02-15T17:15:48+00:00
Add a context menu item for renaming captures in connection panel
-
1abe42c0
by Remi Palandri
at 2022-02-15T19:28:58+00:00
add dimensions and offset info to HTML pipeline
-
8b3b862d
by Remi Palandri
at 2022-02-16T11:02:13+00:00
remove QCOM workarounds on newer driver
-
f9b6752f
by Jake Turner
at 2022-02-16T11:10:34+00:00
Apple: fix hooking not working on OSX 12
Change hooking to use link time symbol address instead of runtime dlsym
Since OSX12 dlsym(RTLD_NEXT,...) returns the interposed symbol not the real symbol
-
f74b350f
by Jake Turner
at 2022-02-16T11:10:34+00:00
Apple: wait for ~16 seconds for application launch
On Apple Silicon it can take ~10 seconds for the OS to launch an Intel x64 process.
The Intel executable is translated on launch using Rosetta.
-
f573b550
by baldurk
at 2022-02-16T13:14:58+00:00
Fix broken call to BecomeRemoteServer
-
31221a6d
by baldurk
at 2022-02-16T16:41:08+00:00
Add support for wglMakeContextCurrentARB. Closes #2498
-
ce36cc34
by Jake Turner
at 2022-02-17T14:06:28+00:00
CMake files base setup for Metal
-
06687065
by Jake Turner
at 2022-02-17T14:06:28+00:00
Added metal-cpp to the project
Raw header file from Metal-cpp project
Generated using
./SingleHeader/MakeSingleHeader.py Foundation/Foundation.hpp QuartzCore/QuartzCore.hpp Metal/Metal.hpp
Metal-cpp project: https://developer.apple.com/metal/cpp/
https://developer.apple.com/metal/cpp/files/metal-cpp_macOS12_iOS15.zip
-
b633ec78
by Jake Turner
at 2022-02-17T14:06:28+00:00
Fix compile warnings/errors in metal-cpp.h
renderdoc/driver/metal/official/metal-cpp.h:15062:121: error: 'const' type qualifier on return type has no effect [-Werror,-Wignored-qualifiers]
-
c4edcdbf
by Jake Turner
at 2022-02-17T14:06:28+00:00
Fix compile warnings/errors in metal-cpp.h
Forward declare MTL::Drawable to avoid conflicts. "Drawable" is a common type name
-
53e17c72
by Jake Turner
at 2022-02-17T14:06:28+00:00
Tweak NS type declarations in metal-cpp.h
Changes to make metal-cpp enums work nicely with RenderDoc serialization
NS::Integer -> std::int64_t
NS::UInteger -> std::uint64_t
RenderDoc serialization works with fixed sized types
-
0d852ae6
by Jake Turner
at 2022-02-17T14:06:28+00:00
Tweak MTL type declarations in metal-cpp.h
Changes to make metal-cpp options work nicely with RenderDoc serialization
_MTL_OPTIONS -> _NS_ENUM
RenderDoc serialization works with fixed sized types
-
25a4fc41
by Remi Palandri
at 2022-02-17T17:36:35+00:00
add VR thumbnail support
-
fcdea678
by baldurk
at 2022-02-17T17:38:32+00:00
Update copyright years to 2022
-
60e1f865
by baldurk
at 2022-02-17T17:38:32+00:00
Fix xml handling of arrays when loading config
-
a51b2036
by baldurk
at 2022-02-17T17:38:32+00:00
On windows only inherit handles if required for process output
-
08e7a557
by baldurk
at 2022-02-19T10:24:33+00:00
Fix potential crash internally to Qt when removing tree widget items
-
39d11975
by Jake Turner
at 2022-02-19T11:17:33+00:00
Update build requirements for Apple
CMake version 3.20 or higher (needed to support Xcode project generation)
clang version 12.0 or higher (needed to support arm64+x64 universal binary compilation)
XCode 12.2 is the oldest version which includes clang version 12.0
-
949aaa2c
by Jake Turner
at 2022-02-19T11:17:33+00:00
Guard XCode project generation specific settings
-
6bd8bcee
by Jake Turner
at 2022-02-19T11:17:33+00:00
Add note that Mac requires a C++17 compiler
-
b17ea43b
by baldurk
at 2022-02-24T19:00:34+00:00
Remove some static variables that aren't needed
-
ccf80e82
by baldurk
at 2022-02-24T19:00:34+00:00
On D3D check for hook recursion thread-locally
-
24d09220
by baldurk
at 2022-02-24T19:00:34+00:00
On GL refuse to capture if any unsupported function is called
* For some of these it may be harmless, but it is apparently common for
applications to blindly use extenstion functions without checking that the
extension is available and this is the only way to make things robust and
prevent them from generating potentially broken captures.
-
7eec1f19
by baldurk
at 2022-02-24T19:00:34+00:00
Fix depth/stencil barrier aspects for discard patterns
-
522a947a
by baldurk
at 2022-02-24T19:00:34+00:00
Specify IGNORED queue family for renderpass barriers
-
d57a8dc5
by baldurk
at 2022-02-24T19:00:34+00:00
Sanitise renderpass barrier layouts before applying them
-
52d26919
by baldurk
at 2022-02-24T19:00:35+00:00
Fix image barriers when selecting BeginRP with discards
-
977d4b4d
by baldurk
at 2022-02-24T19:00:35+00:00
Unset tracking context bindings when objects are deleted
-
c9c3e0f6
by baldurk
at 2022-02-25T13:01:22+00:00
Fix backwards check for unsupported GL functions
-
d972db15
by baldurk
at 2022-02-25T16:15:39+00:00
Don't use linear sampling on integer textures
-
c22fb717
by baldurk
at 2022-02-28T11:32:33+00:00
Fix detection of fatal errors better during initialisation
-
d40a0935
by baldurk
at 2022-03-01T12:07:34+00:00
Fix problems with residency management during capture. Closes #2496
* We don't want to allow threaded evictions of resources while we're preparing
initial states, and we need to manage residency of heaps as well as individual
resources.
-
d645d5f0
by baldurk
at 2022-03-01T12:25:31+00:00
Remove some unused STL includes
-
3ef88343
by baldurk
at 2022-03-07T14:17:12+00:00
Add serialisation of VkCommandBufferInheritanceRenderingInfo::flags
-
4d631e2c
by baldurk
at 2022-03-07T14:17:29+00:00
Check for dynamic rendering inheritance if used with secondary cmdbufs
-
b35b744a
by baldurk
at 2022-03-07T14:45:44+00:00
Verify captures are still present before showing them in connection
* If the RenderDoc UI connects to a program, opens then deletes the captures,
then closes and is opened again - we don't want to report those deleted
captures as if they still exist. This now clears out any captures that no
longer exist.
-
87f2adc8
by baldurk
at 2022-03-07T14:45:44+00:00
Improve mapping of source locations to instructions in shader debugging
-
3af74587
by baldurk
at 2022-03-07T14:45:44+00:00
Continue to show last value of a watch variable when it's not available
-
8e76069e
by baldurk
at 2022-03-07T14:45:44+00:00
Switch watch variables control from table to tree widget
* This will allow watching structs or arrays
-
26de305e
by baldurk
at 2022-03-07T14:45:44+00:00
Allow adding a watch for any text selection
-
b0db52c8
by baldurk
at 2022-03-07T14:45:44+00:00
Show variable context menu for constants panel as well
-
7b4f5356
by baldurk
at 2022-03-07T18:45:57+00:00
Refactor watch variables to support complex types including structs
-
a265a836
by baldurk
at 2022-03-08T18:32:31+00:00
Compile fixes
-
ad9a4e85
by baldurk
at 2022-03-09T03:02:13+00:00
Fix to bizarre CI failure
* For some reason using != on these QSet<QString> fails in release only on
github's CI only. I don't know what is broken on their runners but this
workaround fixes it.
-
9d6526ff
by Remi Palandri
at 2022-03-09T10:15:05+00:00
fix output window vulkan valid/crashes
-
b72bdb2b
by Jake Turner
at 2022-03-09T10:29:03+00:00
Metal: basic hooking and MTLDevice wrapping
-
79aee1df
by Remi Palandri
at 2022-03-09T12:10:47+00:00
full implementation of compute msaa-to-buffer
-
ab199416
by baldurk
at 2022-03-10T11:13:26+00:00
Use _NT_SYMBOL_PATH where available as search path for callstacks
-
91df9332
by Jake Turner
at 2022-03-12T12:08:23+00:00
Updated copyright year to 2022
-
6d24e2b1
by Jake Turner
at 2022-03-12T12:08:23+00:00
Change Metal hooking to use RegisterFunctionHook
Instead of direct function pointer capture at compile time
-
332f3e61
by Jake Turner
at 2022-03-12T12:08:23+00:00
Added and used new macro METAL_NOT_HOOKED
Replaces "NSLog(@"Not hooked %@", NSStringFromSelector(_cmd));"
Added comments to explain use of methodSignatureForSelector & forwardInvocation methods
-
86f4f2f7
by Jake Turner
at 2022-03-12T12:08:23+00:00
Added MetalResourceType enum
Switch to use include of "metal_common.h" instead of "metal_types.h"
-
ef85b49e
by Jake Turner
at 2022-03-12T12:08:23+00:00
Add CaptureState& to WrappedMTLObject constructor
-
596e7f0e
by Jake Turner
at 2022-03-12T12:08:23+00:00
Added a couple of helpers to WrappedMTLObject
Dealloc()
GetObjCWrappedMTLDevice()
-
036a5c8d
by Jake Turner
at 2022-03-12T12:08:23+00:00
Added wrapped MTLLibrary & MTLFunction
Not currently created or used
-
efbc1733
by baldurk
at 2022-03-15T10:53:26+00:00
Make sure to remove secondary subpass flag on renderpasses
* When replaying draws alone in a primary command buffer we need to revert back
to normal draws in subpasses.
-
e2bdd618
by baldurk
at 2022-03-15T11:31:19+00:00
Set default sampler parameters when none is bound. Closes #2520
-
43091746
by baldurk
at 2022-03-15T13:47:25+00:00
Promote CmdUpdateBuffer to be an action (similar to CmdFillBuffer)
* This is more consistent with our definition of actions as anything that can or
does significantly mutate a resource.
-
6d5140e5
by baldurk
at 2022-03-15T14:34:38+00:00
Remove links to deleted wiki pages, and planned/roadmap features doc
-
07011138
by Jake Turner
at 2022-03-15T19:01:52+00:00
Add support for NS::String* serialisation
-
a764744b
by Jake Turner
at 2022-03-15T19:01:52+00:00
Added ObjC::Get_defaultLibraryData
-
33d80615
by Jake Turner
at 2022-03-15T19:01:52+00:00
Add MetalResourceRecord record to WrappedMTLObject
-
d79617cb
by Jake Turner
at 2022-03-15T19:01:52+00:00
Added ResourceId GetResID(WrappedMTLObject *obj)
-
88a2b3d7
by Jake Turner
at 2022-03-15T19:01:52+00:00
Added basic MetalResourceManager implementation
Added MetalResourceManager to WrappedMTLDevice
Added helper macros:
METAL_NOT_IMPLEMENTED
METAL_NOT_IMPLEMENTED_ONCE
Added WrappedMTLDevice InitialState methods to metal_init_state.cpp
Added WrappedMTLDevice Serialiser helper methods to metal_core.cpp
-
5f3203c6
by Jake Turner
at 2022-03-15T19:01:52+00:00
Hooking for MTLDevice basic new Library APIs
-
00e8c312
by Jake Turner
at 2022-03-15T19:01:52+00:00
Change ObjCWrappedMTL* to ObjCBridgeMTL*
Change:
AllocateObjCWrapper -> AllocateObjCBridge
IsObjCWrapped -> IsObjCBridge
GetObjC -> GetObjCBridge
WrappedMTLObject::objc -> WrappedMTLObject::objcBridge
WrappedMTLObject::GetObjCWrappedMTLDevice -> WrappedMTLObject::GetObjCBridgeMTLDevice
Added GetReal() to C++ Wrapped objects
-
247e2d7d
by Jake Turner
at 2022-03-15T19:01:52+00:00
Use bytebuf to serialise default library data
-
ca7495a3
by Jake Turner
at 2022-03-15T19:01:52+00:00
Remove extra #include "serialise/serialiser.h"
-
b92dccc5
by Jake Turner
at 2022-03-15T19:01:52+00:00
Add declarations for ObjC helper methods
-
6a657bd1
by Jake Turner
at 2022-03-15T19:01:52+00:00
Rename ObjC helper GetId -> GetResId
-
30845653
by Jake Turner
at 2022-03-15T19:01:52+00:00
Rename ObjC helper GetResId -> GetResID
-
f01a4df4
by Jake Turner
at 2022-03-17T09:36:44+00:00
Fix Xcode 13.3 and Clang 13.x compile errors
Disable warnings
-Wunused-but-set-variable
-Wdeprecated-copy
-
0c8e41b2
by Jake Turner
at 2022-03-17T10:19:21+00:00
Added wrapped MTLCommandQueue
Implemented capture serialisation for MTLDevice::newCommandQueue
Introduce new helper macros DECLARE_FUNCTION_WITH_RETURN_SERIALISED & INSTANTIATE_FUNCTION_WITH_RETURN_SERIALISED for serialising APIs with return values that need serialising ie. Metal resource creation APIs
-
b743580b
by Jake Turner
at 2022-03-17T10:19:21+00:00
Use new macros for serialising APIs with returns
Use DECLARE_FUNCTION_WITH_RETURN_SERIALISED & INSTANTIATE_FUNCTION_WITH_RETURN_SERIALISED for
MTLDevice::newDefaultLibrary
MTLDevice::newLibraryWithSource
-
f4d9cf2b
by baldurk
at 2022-03-17T18:10:05+00:00
Fix UAV slot matching for D3D11 with merged UAV/RTV bindings
-
345206b2
by baldurk
at 2022-03-17T18:10:05+00:00
Fix validation error with inline uniform block writes
-
5076ab1b
by baldurk
at 2022-03-17T18:10:06+00:00
Allow easier switching between offline/online reflection for tests
-
1591ebcb
by baldurk
at 2022-03-17T23:49:09+00:00
Represent function types as plain func, not ptr-to-func
* This is not how LLVM does things, but sometimes DXIL blobs don't have the ptr-
to-func types present, and we always access the real function type anyway so
it should be safe to store the direct function type.
-
05d31025
by baldurk
at 2022-03-18T14:10:28+00:00
Test that minimum cmake version works in CI
-
20744fb1
by baldurk
at 2022-03-18T14:10:28+00:00
Fix cmake version check to work in older cmake
-
c161f694
by baldurk
at 2022-03-18T14:10:28+00:00
Test building in VS2022 in CI, drop VS2017 check
-
7a29e6a6
by baldurk
at 2022-03-18T14:10:28+00:00
Add a fallback path to manually get git commit on VS2022
* Loading LibGit2Sharp.dll by hand in msbuild no longer works in VS2022 due to
architecture changes. We can fairly reliably get the same result by manually
reading (and following the ref in) .git/HEAD
-
065d2296
by Jake Turner
at 2022-03-21T11:04:32+00:00
Added serialisation of WrappedMTL* types via IDs
Simplify code to get objc bridge from API result to single line instead of using a temporary variable.
Fix missing forward declaration for bool IsObjCBridge(MTL::CPPTYPE *objCWrapped);
-
a4d5bbe8
by Jake Turner
at 2022-03-21T11:04:32+00:00
Use Unwrap() instead of class method GetReal()
Simplify code to get objc bridge from API result to single line instead of using a temporary variable
Fix missing forward declaration for bool IsObjCBridge(MTL::CPPTYPE *objCWrapped);
-
620d5c1f
by Benoit Dumesnil
at 2022-03-21T11:30:47+00:00
Fix dx.op.annotateHandle having changed format.
-
c122b411
by Benoit Dumesnil
at 2022-03-21T11:30:47+00:00
Fix possible uint32 overflow when using unbounded resource tables.
-
dfd00b1e
by Benoit Dumesnil
at 2022-03-21T11:30:47+00:00
Add support for shader model 6.6 bindless resources.
-
29770ef7
by Benoit Dumesnil
at 2022-03-21T11:30:47+00:00
Update D3D headers in test project to latest D3D12 headers
-
e47450a4
by Benoit Dumesnil
at 2022-03-21T11:30:47+00:00
Fix test of D3D12 bindless feedback.
Fix a typo in a comment in D3D12_Descriptor_Indexing.py.
Fix UAV using a typed buffer view instead of a structured buffer view.
Fix SetDescriptorHeaps being called before ClearUnorderedAccessViewUint
-
2ace1fe8
by Benoit Dumesnil
at 2022-03-21T11:30:47+00:00
Add test of D3D12 bindless feedback for shadermodel 6.6.
-
d7dc8a5c
by baldurk
at 2022-03-21T11:34:00+00:00
Fix code not properly using vulkan dynamic vertex inputs. Closes #2527
-
ef68bb16
by baldurk
at 2022-03-21T11:34:00+00:00
Add sanity check that direct-heap access has a heap bound
-
ab228c51
by baldurk
at 2022-03-21T11:34:00+00:00
Update feedback code to not use ptr-to-function type
* The previous PR that added this code existed before ptr-to-function was
stripped down to just function for function types, so this change brings it in
line.
-
47f87e95
by baldurk
at 2022-03-23T11:17:36+00:00
Don't overwrite sampler type when structurising. Closes #2528
-
d4cf3168
by Jake Turner
at 2022-03-25T10:24:22+00:00
Serialise Device as part of MTLDevice API capture
-
260ecd28
by Jake Turner
at 2022-03-25T10:24:22+00:00
Add missing dealloc messages to obj-c wrappers
-
6ec18421
by Jake Turner
at 2022-03-25T10:24:22+00:00
Add obj-c message forwarding to real object
-
0d58ae8c
by Jake Turner
at 2022-03-25T10:24:22+00:00
Tweak element name in Serialise_newDefaultLibrary
buffer -> data
-
7de43454
by Jake Turner
at 2022-03-25T10:24:22+00:00
Serialisation for MTLLibary::newFunctionWithName
-
565e4a71
by Jake Turner
at 2022-03-25T10:24:22+00:00
MetalChunk entries for MTLLibary and MTLFunction
-
61bac7a3
by Jake Turner
at 2022-03-25T10:24:22+00:00
MetalChunk entries for MTLDevice
-
02d72c03
by Jake Turner
at 2022-03-25T10:24:22+00:00
MetalChunk entries for MTLCommandQueue
-
58f6061b
by Jake Turner
at 2022-03-25T12:01:29+00:00
Enable Metal for Mac CI builds
-
0173671f
by Jake Turner
at 2022-03-25T12:01:29+00:00
Fix compile error when building on SDK 11.1
SDK 11.1 and SDK 12 have different declaration for MTLDevice::supportsBCTextureCompression.
On SDK 11.1 it is marked as API_AVAILABLE for ios and on SDK 12 is marked as API_UNAVAILABLE ios.
Guard the API_UNAVAILABLE(ios) declaration to only be included when compiling for SDK 12.0 or above.
The compile error message before the fix:
renderdoc/driver/metal/metal_device_bridge.mm:158:64: error: method cannot be unavailable on iOS when the protocol method it implements is available [-Werror,-Wavailability]
69
- (BOOL)supportsBCTextureCompression API_AVAILABLE(macos(11.0))API_UNAVAILABLE(ios)
-
e660fc85
by baldurk
at 2022-03-25T12:12:39+00:00
Ensure custom shader output is updated before fetching histogram
* The custom shader output is updated when displaying, but this can lag by a
call or two (a 'frame' if you like) when the display is only triggered by a
window repaint and the histogram can be fetched first. Since the custom shader
apply is only expensive when we need to recreate the output texture, we can do
it on-demand similar to what we do with the overlay texture.
-
b9d18690
by baldurk
at 2022-03-25T17:50:44+00:00
Treat surfaces with no capabilities as swap failure
* This can sometimes happen when shutting down
-
2d518a5d
by baldurk
at 2022-03-25T17:50:50+00:00
Re-fetch device after fatal error check
-
1c265bd1
by baldurk
at 2022-03-25T18:17:24+00:00
Fix calculation of temp memory for pRenderingInfo
-
4dcdd6db
by baldurk
at 2022-03-30T11:49:35+01:00
Register hooks for unsupported functions
* This is necessary on e.g. Windows where some legacy functions are only
exported via the dll and need to be 'properly' hooked and not just intercepted
via GL's GetProcAddr
-
378cad24
by baldurk
at 2022-03-30T12:48:38+01:00
Fix some missing comments in custom shader snippet generation
-
9c1eeed2
by baldurk
at 2022-03-30T12:51:36+01:00
Fix copy-paste error with GLSL unsigned integer texture declarations
-
cd10efb6
by baldurk
at 2022-03-30T13:05:46+01:00
Fix some abstraction defines for custom shaders
-
eb1e625b
by baldurk
at 2022-03-30T14:53:20+01:00
Add better documentation for how to specify separate shader debug info
-
4a433256
by baldurk
at 2022-03-31T17:48:39+01:00
Bump version to 1.20
-
b215fbe3
by Tatsuyuki Ishi
at 2022-04-08T13:04:21+01:00
vk_shader_feedback: Fix crash with dynamic rendering
RenderPass can be null handle when dynamic rendering is used. Retrieve the
respective information from pipeline info instead.
-
74178e8a
by Shahbaz Youssefi
at 2022-04-08T13:09:46+01:00
Support VK_QCOM_render_pass_store_ops
This extension is the origin of STORE_OP_NONE, which found its way to
VK_EXT_load_store_op_none and VK_KHR_dynamic_rendering. RenderDoc
supports STORE_OP_NONE just fine, this change simply adds this extension
to RenderDoc's allowlist.
-
3e5d9127
by baldurk
at 2022-04-08T17:45:24+01:00
Ensure injected DLL doesn't run out of stack space
* GL hooks registration was using an obscene amount of stack because MSVC
doesn't share stack for mutually exclusive locals (all the temporary
FunctionHooks) so an executable that reduces the default thread stack size
enough would fail to start.
* We also explicitly allocate 1MB of stack for injecting our DLL in future to
avoid this issue.
-
9ceff0a9
by baldurk
at 2022-04-08T17:45:24+01:00
Fix handling of sub-page-sized mip tails with D3D-style wrapped set
-
8c57a14b
by baldurk
at 2022-04-08T17:45:25+01:00
Serialise encoded color in obfuscated-style D3D12 markers. Closes #2537
-
be38f451
by baldurk
at 2022-04-11T12:57:10+01:00
Fix handling of split-register matrix source variables. Closes #2536
-
4c7d59c0
by baldurk
at 2022-04-11T13:13:21+01:00
Update toolwindowmanager to 299471d
-
3b8ac99a
by Le Philousophe
at 2022-04-11T13:23:53+01:00
Unbind textures before deleting them
Without this valgrind complains about use-after-free
-
c3ed881b
by Le Philousophe
at 2022-04-11T13:23:53+01:00
Delete render buffer only after finish using it
-
ecb75fed
by Jake Turner
at 2022-04-13T11:33:03+01:00
Added wrapped MTLCommandBuffer
Implemented capture serialisation for
MTLCommandQueue::commandBuffer
MTLCommandBuffer::presentDrawable
MTLCommandBuffer::commit
-
9271e44e
by Jake Turner
at 2022-04-13T11:33:03+01:00
De-serialise ResourceId default resource to NULL
Used during structured exporting
-
12d9d347
by Jake Turner
at 2022-04-13T11:33:03+01:00
PR feedback for CmdBufferRecordingInfo
Removed namespace MetalResources scope
Rename it to MetalCmdBufferRecordingInfo to remove conflict with Vulkan struct of the same name.
Mark MetalCmdBufferRecordingInfo default constructor as deleted
Added MetalCmdBufferRecordingInfo constructor which takes WrappedMTLCommandQueue* and initializes member variables to sensible defaults.
Removed "WrappedMTLDevice *device;" member variable.
-
6931c4d9
by Jake Turner
at 2022-04-13T11:33:03+01:00
PR Feedback for WrappedMTLCommandBuffer
Moved small inline methods to be inside the class declaration instead of outside
-
14954013
by Jake Turner
at 2022-04-13T11:33:03+01:00
MTLCommandBuffer::commit record/chunk tweak
Do not set the MTLCommandQueue record as a parent of the MTLCommandBuffer record.
Only mark the MTLComamndQueue record as frame referenced when active capturing.
-
f8c792d8
by Jake Turner
at 2022-04-13T11:33:03+01:00
PR Feedback MTLCommandBuffer::commit record tweak
MarkResourceFrameReferenced() on the buffer record instead of the resource manager
Transfer the frame references on the buffer record to the resource manager when the buffer is committed.
-
da08c10c
by baldurk
at 2022-04-13T12:19:15+01:00
Update vulkan & SPIR-V headers to latest
-
a6301ef6
by baldurk
at 2022-04-13T12:19:37+01:00
Add support for VK_KHR_pipeline_library
* On its own this extension doesn't really do anything
-
20c986fc
by baldurk
at 2022-04-13T13:57:48+01:00
Add support for EXT_graphics_pipeline_library
-
9e17c2b6
by baldurk
at 2022-04-14T16:37:45+01:00
After discard patterns rebind state properly even without pipeline
* Previously our state rebinding expected to be 'at' a draw so it used a
pipeline to determine which push constants and descriptor sets to rebind. Now
we track which was the last descriptor set to be rebound and use it as
reference, even if a pipeline isn't available, to properly rebind descriptors.
-
4a1ba0d0
by Jordan Justen
at 2022-04-14T09:50:35-07:00
Merge tag 'v1.19' into debian/master
v1.19
-
e0f5d68a
by Le Philousophe
at 2022-04-15T10:58:03+01:00
Prefer loading of libEGL.so.1 before libEGL.so
On most platforms libEGL.so is a symlink to libEGL.so.1 used for
development
-
75a7f662
by Le Philousophe
at 2022-04-15T10:58:03+01:00
Don't run hooks multiple times when shared objects are symlinked
When two shared objects are symlinked and if one is loaded,
CheckLoadedLibraries detects the other one as loaded too and run hooks a
second time.
Prevent this as it leads to recursive blocking calls in libEGL.
-
9668cc9a
by baldurk
at 2022-04-15T11:47:49+01:00
Align up the page count when applying single page mappings on D3D12
-
a4360c62
by baldurk
at 2022-04-15T11:47:49+01:00
Handle some edge cases when naming objects on replay
-
cd0118ee
by baldurk
at 2022-04-15T11:47:49+01:00
Set stencil reference for non-stencil path, even if not needed
* We're not doing any stencil work, but we should still set the dynamic state
properly as needed by the pipeline.
-
d80f8963
by Jordan Justen
at 2022-04-15T18:01:46-07:00
d/changelog: Start 1.19+dfsg-1 changelog
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
5c0fa60a
by Jordan Justen
at 2022-04-15T18:05:33-07:00
d/patches: Rebase patches for renderdoc v1.19
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
0b1c6b8d
by Oschowa
at 2022-04-18T12:00:57+01:00
vk_postvs: Fix crash with dynamic rendering
Similar to b215fbe306b, this fixes crashes with dynamic rendering
when GS is used and viewMask is 0.
-
26585e9a
by baldurk
at 2022-04-18T17:06:44+01:00
Fix arrayed resource bindings shader debug variables. Closes #2550
-
dee3c37d
by baldurk
at 2022-04-18T17:06:44+01:00
Fix some edge cases when handling unsaved captures. Closes #2554
* The 'no to all' option should always be present if there are multiple unsaved
captures across the connections, even if the current connection only has one
capture and so otherwise wouldn't have a 'no to all' option.
* The 'no to all' option will always discard all unsaved captures in all
connections when closing the window, if the user clicks no on the confirmation
of this, abort the close operation entirely and let them decide how to handle
it (e.g. discarding/saving captures in connections individually).
-
0c672aff
by baldurk
at 2022-04-19T12:51:26+01:00
Set the conservative raster state display properly on vulkan
-
1201d47d
by baldurk
at 2022-04-21T00:58:15+01:00
Fix tooltips for sampler variables in shader debugger
-
4e240a41
by Jake Turner
at 2022-04-21T10:08:01+01:00
WrappedMTLObject rename member variables
objcBridge -> m_ObjcBridge
real -> m_Real
id -> m_ID
record -> m_Record
MetalResourceRecord rename member variable
Resource -> m_Resource
resType -> m_Type
-
823ecdbb
by Jake Turner
at 2022-04-21T10:08:01+01:00
MTLDevice wrapping for feature supported APIs
These APIs are not serialized and pass through to real device
One exception is ray tracing related support APIs return false ie.
supportsRaytracing
supportsRaytracingFromRender
-
ea5cfa6e
by Jake Turner
at 2022-04-21T10:08:01+01:00
Change serialized name for wrapped Metal Objects
Change WrappedMTL<TYPE>* -> MTL<TYPE>
Before
<ResourceId name="Device" typename="WrappedMTLDevice *" width="8">4</ResourceId>
<ResourceId name="Library" typename="WrappedMTLLibrary *" width="8">9</ResourceId>
<ResourceId name="vertexFunction" typename="WrappedMTLFunction *" width="8">10</ResourceId>
After
<ResourceId name="Device" typename="MTLDevice" width="8">4</ResourceId>
<ResourceId name="Library" typename="MTLLibrary" width="8">9</ResourceId>
<ResourceId name="vertexFunction" typename="MTLFunction" width="8">10</ResourceId>
-
8a95818b
by Jake Turner
at 2022-04-21T10:08:01+01:00
Move __MAC_12_0 define to a header file
-
1ae2afc0
by baldurk
at 2022-04-22T12:55:40+01:00
Apply shader prefix even if encoding is directly accepted. Closes #2561
* The prefix, if available, must always be applied for custom shaders to compile
correctly.
-
cb0dc39b
by Bertrand Guay-Paquet
at 2022-04-22T13:49:56+01:00
Add link to the contrib repository for custom visualisation
-
b173e85a
by Aurelien Chanot
at 2022-04-22T18:27:06+01:00
Fix crash when application is using unsupported function.
It fixes this crash:
https://gist.github.com/achanot/7e0d25d1e5a619a61b688ec895c7a349
-
aef7fc69
by Jake Turner
at 2022-04-25T12:08:51+01:00
Add header files to demos CMakeLists.txt
Helpful for source browsing when using an IDE project generated by CMake
Potential list of header files found using:
find util/test/demos -name '*.h' \! -path "*3rdparty*" \! -path "*official*"
-
a2d77f58
by Tatsuyuki Ishi
at 2022-04-25T14:17:12+01:00
foz: Rename dynamic rendering colorAttachmentFormats
-
b0ff54fb
by Tatsuyuki Ishi
at 2022-04-25T14:17:12+01:00
foz: Reconstruct specialization constants with correct layout
-
3d4cd457
by Tatsuyuki Ishi
at 2022-04-25T14:17:12+01:00
foz: Encode sampleMask as array
-
2285bcc2
by Tatsuyuki Ishi
at 2022-04-25T14:17:12+01:00
spirv_reflect: Remove unnecessary spec sort
By construction the variables are pushed in order from smaller offset to
larger offsets. The sort only confuses the reader, so remove it.
-
7aa7f1da
by baldurk
at 2022-04-26T13:20:09+01:00
Generate .sig files after signing installers
-
10dd4c19
by baldurk
at 2022-04-26T16:21:35+01:00
Update some tips that are out of date
-
8aa03909
by baldurk
at 2022-04-26T16:21:54+01:00
Add string messages to returned result codes to display to user
* Most of the main entry points that can fail with relevant reasons now has a
way of specifying a message to return with it. This message can be displayed
to the user to give more information or context about an error.
-
16f3764c
by baldurk
at 2022-04-26T17:37:31+01:00
Work around gcc compiler bug
* It complains that there is switch fallthrough after an unconditional return,
when it's inside a do{}while(0). Simplifying the while condition seems to
address it.
-
46676091
by baldurk
at 2022-04-26T18:09:15+01:00
Fix docstrings in ResultDetails and ExecuteResult
-
9f9419c2
by baldurk
at 2022-04-27T13:46:02+01:00
Preprocess #line directives in SPIR-V debug info to get referenced files
* This matches the line number and source file references generated in the debug
info
-
51a9d26f
by baldurk
at 2022-04-27T16:02:38+01:00
Handle DebugSourceContinued properly in SPIR-V
-
4103f6a5
by baldurk
at 2022-04-28T11:39:11+01:00
Properly zero initialise DDS return structure
-
70666922
by baldurk
at 2022-04-28T13:39:37+01:00
Test that sampler heaps are represented in structured data properly
* This is a test of a specific case of lazy serialisation, but in particular
D3D12 descriptors do some aliasing tricks for types to compress the data, so
repeated serialisation needs to be safe.
-
c1240eff
by baldurk
at 2022-04-28T14:05:38+01:00
Test alternative functions for binding contexts on GL
-
04c62f95
by baldurk
at 2022-04-28T14:19:38+01:00
Add a test debugging shaders on D3D12 with banned flags in the root sig
-
d9c98f44
by baldurk
at 2022-04-28T16:34:44+01:00
Fix stepping backwards working incorrectly with multiple location maps
-
f54d28c2
by Yuxin Hu
at 2022-05-03T12:03:42+01:00
Support VK_GOOGLE_surfaceless_query
This change adds the VK_GOOGLE_surfaceless_query extension
to RenderDoc's allowlist.
-
85789e62
by kmchan
at 2022-05-03T12:26:32+01:00
Update HWCPipe to support performance counters of Dimensity 9000 SoC
Base HWCPipe commit: https://github.com/ARM-software/HWCPipe/commit/8cc02065b4ef249127aa0164dc0d62d65c0d4203
-
acde46de
by Remi Palandri
at 2022-05-03T12:33:46+01:00
move ms/compute shader system to single descriptorset
-
96a7639c
by baldurk
at 2022-05-03T14:06:07+01:00
Add test of flow control constructs in D3D11 shader debugging
-
a9562c87
by baldurk
at 2022-05-03T15:30:20+01:00
Test that discard patterns don't disturb bound state on vulkan
-
cfdbc3da
by baldurk
at 2022-05-03T15:30:47+01:00
Remove outdated experimental feature check
-
4953adde
by baldurk
at 2022-05-03T18:47:27+01:00
Add a test of KHR_Dynamic_Rendering
* Not all possible interactions are currently tested, but at least the ones that
have been broken in the past.
-
229d80b4
by kkhalid
at 2022-05-04T10:01:13+01:00
Update win32_threading.cpp
fixing compilation errors with clang-cl: "template specialization requires 'template<>"
-
7d68116f
by kkhalid
at 2022-05-04T10:01:13+01:00
Update dxbc_debug.cpp
fix clang-CL errors : call to constructor of 'ShaderVariable' is ambiguous
-
09519c80
by baldurk
at 2022-05-04T15:47:04+01:00
Add usage from trailing events in command buffers
-
e5000ff9
by baldurk
at 2022-05-04T15:47:04+01:00
Handle source variables that map to non-existant debug variables
-
8d34ea57
by baldurk
at 2022-05-06T13:17:09+01:00
Add some missing tooltips for event browser location buttons
-
2fc0866c
by baldurk
at 2022-05-09T11:32:11+01:00
Fix display of register names for matrix source variables
-
797fbcc1
by baldurk
at 2022-05-09T11:32:25+01:00
Fix friendly name of registers in cbuffer declarations in dxbc
-
f3fe008d
by Jake Turner
at 2022-05-10T11:36:02+01:00
Store ObjC bridge class in Wrapped C++ classes
Stored as first member data in Wrapped C++ classes (m_ObjcBridge)
Can cast WrappedMTL* C++ pointer to ObjCBridgeMTL* type to use as the ObjC bridge class
Can cast ObjCBridgeMTL* pointer to WrappedMTL* C++ type to use as the Wrapped C++ class
Removed use of term ObjCBridge except on the ObjC bridge declarations
WrappedMTLObject member initialization
Prefer member initialization instead of constructor initialization list
-
ee3e77a5
by baldurk
at 2022-05-11T00:52:42+01:00
Only update backing store if it has been allocated. Closes #2583
-
6dfca8bc
by baldurk
at 2022-05-11T11:31:11+01:00
Ensure vkCmdSetEvent2 struct chain is properly unwrapped. Closes #2582
-
1fdf8fc7
by Jake Turner
at 2022-05-18T10:17:16+01:00
Fix MTL::LinkedFunctions bug in metal-cpp.h
MTLLinkedFunctions groups is an NS::Dictionary* not an NS::Array*
ie.
@property(readwrite, nonatomic, copy, nullable) NSDictionary<NSString *,NSArray<id<MTLFunction>> *> *groups;
-
8a85d153
by Jake Turner
at 2022-05-18T10:17:16+01:00
Added wrapped MTLRenderPipelineState & MTLTexture
Implemented capture serialisation for APIs:
MTLDevice::newRenderPipelineStateWithDescriptor
MTLDevice::newTextureWithDescriptor
Workaround to prevent Metal capture library assert triggering on the bridge MTLTexture object, add protocol "MTLTextureImplementation" to class "ObjCBridgeMTLTexture"
Serialisation for helper types:
MTL::TextureDescriptor
MTL::RenderPipelineDescriptor
MTL::RenderPipelineColorAttachmentDescriptor
MTL::PixelFormat
MTL::TextureType
MTL::PrimitiveTopologyClass
MTL::ResourceOptions
MTL::CPUCacheMode
MTL::StorageMode
MTL::HazardTrackingMode
MTL::TextureUsage
MTL::TextureSwizzleChannels
MTL::TextureSwizzle
MTL::ColorWriteMask
MTL::BlendOperation
MTL::BlendFactor
MTL::Winding
MTL::TessellationFactorFormat
MTL::TessellationControlPointIndexType
MTL::TessellationFactorStepFunction
MTL::TessellationPartitionMode
-
7f19df6a
by Jake Turner
at 2022-05-18T10:17:16+01:00
Refactored WrappedMTLDevice texture helper methods
PR Feedback.
Replaced NewTexture & NewIOSurfaceTextureWithDescriptor with a single combined method Common_NewTexture
-
ddf56d7b
by Jake Turner
at 2022-05-18T10:17:16+01:00
Move DoSerialise* methods to metal_serialise.cpp
PR Feedback.
Moved from metal_types.cpp -> metal_stringise.cpp
-
cef722a3
by Jake Turner
at 2022-05-18T10:17:16+01:00
Simplify GetObjcArray implementation
PR Feedback.
Remove optimisation of the array of pointers on the stack
resize the to array when adding a valid object
-
00fdb79d
by Jake Turner
at 2022-05-18T10:17:16+01:00
Hook CAMetalLayer nextDrawable message
PR Feedback.
Replace the brittle callstack string comparison
-
259205fd
by Jake Turner
at 2022-05-18T10:17:16+01:00
Remove extra rdDescriptor variable
PR Feedback.
-
8d7d060e
by Jake Turner
at 2022-05-18T10:17:16+01:00
Set nextDrawable TLS data before creating hook
-
814ad814
by Jake Turner
at 2022-05-18T10:17:16+01:00
Adopt g_* naming convention for class static's
WrappedMTLDevice
real_CAMetalLayer_nextDrawable -> g_real_CAMetalLayer_nextDrawable
nextDrawableTLSSlot -> g_nextDrawableTLSSlot
-
39cdfeb1
by Jake Turner
at 2022-05-18T10:17:16+01:00
Set s_hookObjcMethods true in MTLHookObjcMethods
PR Feedback
-
1d9be383
by Jake Turner
at 2022-05-20T13:36:23+01:00
Apple: support for Output_DebugMon log channel
-
5a722b0e
by Jake Turner
at 2022-05-20T13:36:23+01:00
Apple: cache debugger detection
Also added check if sysctl succeeded
-
cef00a10
by baldurk
at 2022-05-20T13:37:25+01:00
Add struct VarType and combine flags into single field
* This is not a space saving right now, but allows more flags to be added
without adding more storage.
-
4e5e01e7
by baldurk
at 2022-05-20T13:37:25+01:00
Improve consistency in shader constant reflection
* This reports the struct vartype now, ensures that struct sizes are always
reported and alignments are respected, along with some other fixes to more
accurately report memory layouts of structs.
-
2399c9d1
by baldurk
at 2022-05-20T13:37:25+01:00
Add support for bitfield packing in the buffer viewer formatting
-
cb49f21f
by baldurk
at 2022-05-20T13:37:26+01:00
Support enums in buffer formatter
-
01d9c669
by baldurk
at 2022-05-20T13:37:26+01:00
Add flags for format-intepreted packed types
-
0890afd7
by baldurk
at 2022-05-20T13:37:26+01:00
Specify rgb, hex, unorm/snorm and format packing as annotations
-
a42f9edc
by baldurk
at 2022-05-20T13:37:26+01:00
Add annotation for binary view
-
91f530f0
by baldurk
at 2022-05-20T13:37:26+01:00
Parse out annotation name and parameter explicitly
-
cee4b25b
by baldurk
at 2022-05-20T13:37:26+01:00
Allow specifying offsets and struct strides manually with offsets
* Use these when generating buffer formatter strings instead of declaring manual
padding variables.
-
43fda618
by baldurk
at 2022-05-20T13:37:26+01:00
Add a packing rules struct to contain important packing rules
* There are several different API packing rulesets - GL has std140 and std430
(and packed/shared, which is implementation defined but is likely to be
similar to one of these or more conservative), VK effectively has rules for
those both, as well as scalar packing which is close to C packing. D3D has one
ruleset for cbuffer packing similar to std140, and effectively scalar for
structured resources.
* These rulesets are quite similar and only differ by the properties here. There
is one exception in the handling of empty structs - but in GLSL these are
illegal so we will take the HLSL interpretation and always treat them as 0
bytes.
-
7abe72be
by baldurk
at 2022-05-20T13:37:26+01:00
Add a function to estimate packing rules based on members
* This is primarily for GL/VK where the packing rules are not pre-defined and
are also not explicitly reflected, so we instead see what rules are broken
along the way to get the most conservative ruleset we can (that way minimising
the need for manual offset decorations)
-
4dc7b3f8
by baldurk
at 2022-05-20T13:37:26+01:00
Process packing rules when parsing formatting strings
* Instead of having a global tight/non-tight we now let the format string
specify the packing rules (defaulting to scalar - i.e. tight packing as
before), and use the resulting properties to calculate packing.
-
97a3943c
by baldurk
at 2022-05-20T13:37:26+01:00
Use packing rules when generating format strings for structs
* This allows the calling code to pass a hint of what packing is known or likely
to be used, meaning less generated manual offsetting/padding when the implicit
rules cover it.
-
d2bbf764
by baldurk
at 2022-05-20T13:37:26+01:00
Fix struct declaration order when multiple structs use a common struct
-
788b408b
by baldurk
at 2022-05-20T13:37:26+01:00
Add test for GL reflection & reconstruction of runtime arrays
-
ac886728
by baldurk
at 2022-05-20T13:37:26+01:00
Don't use docking UI for raw buffer viewer mode
-
949165d7
by baldurk
at 2022-05-20T13:37:26+01:00
Split mesh and buffer viewer documentation up
* There's no reason to make users aware that the mesh viewer and buffer viewer
are implemented in a common way, they are very different and should be
documented separately.
* This hasn't updated the buffer viewer documentation with the recently added
features.
-
d0720fe7
by baldurk
at 2022-05-20T13:37:26+01:00
Allow a [[pad]] annotation to specify padding elements
* These elements are consumed but not shown, so the offsets of subsequent
elements still act as if they're there. This may be more convenient than
specifying a manual offset on the next element or a struct size.
-
a36516c8
by baldurk
at 2022-05-20T13:37:26+01:00
Explicitly handle unbounded arrays and display declared fixed vars
* GL and Vulkan allow buffers to have fixed variables before a trailing AoS
unbounded array. These fixed variables can't be easily displayed in a table
and previously we skipped them. Now we display these in a tree format.
* We also support formats which don't have an unbounded array at all and display
these just with the tree. This will allow the BufferViewer to subsume the
capabilities of the ConstantBufferPreviewer (though it needs to handle opaque
non-buffer-backed variables, and slot-following).
-
fcdcc971
by baldurk
at 2022-05-20T13:37:27+01:00
Implement export options for fixed items in buffer view
-
43fa3cd9
by baldurk
at 2022-05-20T14:15:30+01:00
Use BufferViewer for viewing constant buffers
* Unifying these views means that constant buffers have all the same
reformatting and it avoids having multiple paths for what is now effectively
the same control (a buffer can either have fixed data, repeating data, or
both)
-
5ac9de0a
by baldurk
at 2022-05-20T14:15:30+01:00
Show truncation in fixed variables explicitly instead of showing 0s
-
4bb54d00
by baldurk
at 2022-05-20T14:15:30+01:00
Show visible offsets and (optionally) padding in buffers. Closes #1664
-
abe645f0
by baldurk
at 2022-05-20T14:15:30+01:00
Add support for saving and loading structure definitions
-
d6c7bbb9
by baldurk
at 2022-05-20T14:15:30+01:00
Remove appveyor integration from catch
-
3908082b
by baldurk
at 2022-05-20T14:15:30+01:00
Improve python docstring checks
* We need to check for getsets having duplicate docstrings, and ignore
docstrings being duplicated between members of different structs.
-
2d8687e2
by baldurk
at 2022-05-20T14:15:31+01:00
Show parse errors on the line they occur
-
8c6192d5
by baldurk
at 2022-05-20T14:15:31+01:00
Copy catch.hpp into qrenderdoc and run on --unittest in non-release
-
31feedd1
by baldurk
at 2022-05-20T14:15:31+01:00
Remove ShaderConstantDescriptor, inline into ShaderConstantType
* This struct was redundant isnce it was only ever used in the type and not
meaningfully accessed directly.
-
d2c557a1
by baldurk
at 2022-05-20T14:15:31+01:00
Pick better packing defaults for APIs where we know what is expected
* For vulkan any packing can be legal so we don't pick a default, but at least
for D3D and GL the type of buffer implies a packing.
-
8ab61370
by baldurk
at 2022-05-20T14:15:31+01:00
Make blank parse result more consistent
-
7acde16d
by baldurk
at 2022-05-20T14:15:31+01:00
Improve parsing of pointers in buffer formats
-
6b133b43
by baldurk
at 2022-05-20T14:15:31+01:00
Account for specified struct padding in final root struct
-
07d7bbc1
by baldurk
at 2022-05-20T14:15:31+01:00
Add tests for buffer format parsing
-
e4751e66
by baldurk
at 2022-05-20T14:15:31+01:00
Update docs for buffer viewer changes
-
8566d556
by baldurk
at 2022-05-20T14:15:31+01:00
Add missing value check in GL_CBuffer_Zoo
-
cef5aa85
by baldurk
at 2022-05-20T14:15:31+01:00
Avoid declaring redundant structs for anonymous GL structs
-
90accaef
by baldurk
at 2022-05-20T14:48:21+01:00
Add usage from trailing events in command buffers on D3D12. Closes #2589
-
601ed787
by baldurk
at 2022-05-20T15:48:21+01:00
Fx mac ssh host signature for new server
-
d103d31f
by baldurk
at 2022-05-20T15:51:01+01:00
Don't replay past end of indirect draws on vulkan. Closes #2590
* If the popmarker inserted at the end of an indirect multi-draw is selected
this points past the end of the normal draws, but we don't want to replay that
extra draw.
-
a1abc95a
by baldurk
at 2022-05-20T16:43:09+01:00
Remove use of QStringView from newer Qt versions
-
d7404bb6
by baldurk
at 2022-05-20T17:00:47+01:00
Fix missing newline in docs code snippet
-
225b6001
by baldurk
at 2022-05-20T17:57:16+01:00
Reference bool via lowercase bool not Bool
-
3794f636
by Jake Turner
at 2022-05-23T10:23:42+01:00
Call real MTLCommandBuffer::enqueue from the hook
Fixes infinite loop if application calls MTLCommandBuffer::enqueue
-
d1c5db38
by Jake Turner
at 2022-05-23T10:23:42+01:00
Tweak METAL helper macros
METAL_NOT_HOOKED
Get class name directly from self pointer instead of getting the class type from self and then the class name from the class type
Change the log to be an RDCERR instead of an RDCWARN
METAL_NOT_IMPLEMENTED_ONCE
Change the log to be an RDCWARN instead of RDCDEBUG to match METAL_NOT_IMPLEMENTED macro
-
3baa2440
by Jake Turner
at 2022-05-23T10:23:42+01:00
Initialize member variables in the RDMTL structs
Match the default values set when the Metal versions of the structs are initialized
-
cb98a133
by Jake Turner
at 2022-05-23T10:23:42+01:00
Use RDCMTL descriptor structs C++ wrapped APIs
Create the RDCMTL descriptor struct in the ObjC hook and pass it to the C++ wrapped APIs
ie.
WrappedMTLDevice::newTextureWithDescriptor takes a RDMTL::TextureDescriptor &
WrappedMTLDevice::newRenderPipelineStateWithDescriptor takes a RDMTL::RenderPipelineDescriptor &
This means the wrapping and unwrapping of resources in the descriptor structs is handled by the conversion methods for the structs
-
362d1a46
by Jake Turner
at 2022-05-23T10:23:42+01:00
Change serialization name for RDMTL structs
Changed from "RDMTL::TYPE" -> "MTLTYPE" to better match the Metal type name
Rename RDMTL::FunctionGroups -> RDMTL::FunctionGroup
-
e9256889
by baldurk
at 2022-05-23T13:56:05+01:00
Fix use-after-free when freeing vulkan postponed memory. Closes #2573
-
b0fce7c8
by baldurk
at 2022-05-23T13:56:05+01:00
Zero-initialise query struct
-
6db5e339
by baldurk
at 2022-05-23T13:56:05+01:00
Handle external queues properly when doing coherent memory readback
-
c5a588d2
by baldurk
at 2022-05-23T14:43:08+01:00
Fix texture-as-buffer view format string generation
-
8d5950af
by baldurk
at 2022-05-23T16:32:35+01:00
Add F5 as a shortcut to update the buffer format
-
444515c6
by baldurk
at 2022-05-23T16:33:00+01:00
Always treat vertex buffer formats as scalar packed
-
397088a8
by baldurk
at 2022-05-23T16:33:21+01:00
Remove some cbuffer considerations for regular buffer views
-
a351fc14
by baldurk
at 2022-05-24T12:48:17+01:00
Fix tests for API changes
-
da974ad5
by baldurk
at 2022-05-24T13:31:04+01:00
Fix test failing if compiler eliminates dead inputs
-
27aa5e05
by baldurk
at 2022-05-24T16:34:42+01:00
Work recursively to estimate packing rules of a struct
-
694c17d6
by baldurk
at 2022-05-24T17:59:10+01:00
Fix formatting of buffers with explicit unbounded arrays
-
702e3613
by baldurk
at 2022-05-25T14:09:37+01:00
Unregister F5 shortcut in buffer formatter
-
91675e8d
by baldurk
at 2022-05-25T16:31:46+01:00
Improve sizing of custom format setcion and use splitter between sides
-
9bde5324
by baldurk
at 2022-05-25T17:02:10+01:00
Improve handling of enums in buffer viewer fixed variables
-
4b0b7462
by baldurk
at 2022-05-25T17:02:17+01:00
Don't clear annotations when only style changes
-
d44d9e48
by baldurk
at 2022-05-25T17:02:27+01:00
Show bitpacking in offset column in buffer viewer
-
c77261f0
by baldurk
at 2022-05-25T17:18:31+01:00
Display struct/enum typenames when available in buffer viewer
-
1f1f1fae
by baldurk
at 2022-05-26T13:43:46+01:00
Fix some issues with tests found running on linux
-
ba5f806b
by baldurk
at 2022-05-27T10:43:55+01:00
Set constant buffer generated format as the auto format
-
70676a57
by baldurk
at 2022-05-27T10:44:10+01:00
Fix a Qt error setting layout into buffer format specifier
-
2116bc0d
by Jordan Justen
at 2022-05-29T01:53:02-07:00
Merge tag 'v1.20' into debian/master
v1.20
-
de90295a
by Jordan Justen
at 2022-05-30T14:47:18-07:00
d/changelog: Start 1.20+dfsg-1 changelog
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
e6576934
by Jordan Justen
at 2022-05-30T14:47:18-07:00
d/patches: Rebase patches for renderdoc v1.20
Signed-off-by: Jordan Justen <jljusten@debian.org>
-
9c3064e3
by Jordan Justen
at 2022-05-30T14:48:35-07:00
d/changelog: Release 1.20+dfsg-1 to unstable
Signed-off-by: Jordan Justen <jljusten@debian.org>