On Apple only set CMAKE_LIBRARY_OUTPUT_DIRECTORY to be “lib” folder instead of “bin” folder
Fixes osx problem when launching renderdoccmd not being able to find librenderdoc.dylib
RPATH is set to be "@executable_path/../lib" which matches where qrenderdoc.app copies the renderdoc library to
qrenderdoc: set library search folder “-L” to be CMAKE_LIBRARY_OUTPUT_DIRECTORY instead of CMAKE_RUNTIME_OUTPUT_DIRECTORY
Fixes a crash in the driver on RADV when compiling the PostVS shader
for a shader that has these opcodes. The incorrect section boundaries
was causing BuiltIn decorations to not be stripped.
The SPIR-V spec requires OpName comes before any OpModuleProcessed.
Fixes a SPIR-V validation error on the generated PostVS shader if the
original shader has any OpModuleProcessed.
Copied from linux implementation using iconv API
Added if guard before calling iconv_close() to fix
> ./build/bin/renderdoccmd test
renderdoccmd(77013,0x11660e5c0) malloc: *** error for object 0xffffffffffffffff: pointer being freed was not allocated
renderdoccmd(77013,0x11660e5c0) malloc: *** set a breakpoint in malloc_error_break to debug
Abort trap: 6
On Linux, the proc file (/proc/<pid>/net/tcp) contains not only the ports for the given process, as this is the same as the /proc/net/tcp file.
We can obtain the right port by the inode number which is also in the proc file and with the file descriptor of the process (/proc/<pid>/fd).
If conditional rendering is enabled its state is always
displayed in both 'Rasterizer' and 'CS' states.
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
* If we have e.g. Input Float* and Output Float* when we patch they will both
become Private Float* and we collapse the types together. When that happens,
don't rename names for the losing type, just remove names.
* This was an experiment that accidentally got included, these shaders are only
compatible with SM5 due to dynamic sample indexing and use of SV_SampleIndex
* This isn't relevant for Vulkan, but in GL it's valid to not specify a binding
and fetch it at runtime (and even if a binding is specified, it's not
immutable and can be changed).
* Similarly GL allows bare uniforms that aren't in a buffer, which we handle in
the same way by wrapping them into a $Globals UBO.
* It gets a couple of things less than ideal, mostly glsl block names being on
the next line, but otherwise it's readable and stops mixed tabs/spaces which
had snuck in without checks.
* This isn't perfect and has the risk of false positives, e.g. 0x10 for a
bitfield might be identified as the object with handle 16. Without doing more
advanced string processing like trying to identify 'image 0x10' vs
'aspectFlags 0x10' this is unavoidable, and adding a nonsense ResourceId where
context makes it clear that it's nonsense isn't too bad.
* If in future the validation layers are updated to consistently pass objects
through the debug_utils interface, this may become redundant.
* This allows us to add rich text support much more easily into other itemviews
like RDTableView.
* We set it up for debug messages so that resource links in debug messages can
be linked.