* The compiler could compile an entry point "foo" into an export "bar". We use
the exported name in most places as that's guaranteed to be unique by the API
and used for cross-referencing, but when recompiling we pass the original
source name as in the debug info.
Use Formatter::HumanFormat() to get consistent formatting and to apply the UI formatting configuration mode for Offsets and Sizes i.e. Auto, Decimal, Hexadecimal.
* This supports capture and replay of mesh draws, shader editing with printf
support, overlays, and pixel shader debugging.
* Not supported yet include the mesh viewer and shader debugging.
* The enums are given after compute, to preserve indices for the normal vertex
pipeline.
* Mesh dispatches are considered a new action type, rather than being bundled
into the `Drawcall` type. This will allow them to be distinguished by API
backends as needed. The UI treats them as drawcalls
* We apply this universally even though it's not relevant to D3D11/GL. It means
a couple of empty array entries but it should not cause any significant
issues.
* Shader messages will be identified by group and thread as with compute
shaders. For mesh shaders there is an additional subdivision to identify them
by task group, since each task group can submit a grid of mesh groups.
Fixed the problem that showing invalid shader resource in pipeline state viewer since v1.24
Revert "Hide invalid shader resources"
This reverts commit e62b6fa13d24bcd8c9d2e2109a140efe1c068736.
Hide invalid shader resources on D3D12
Qt on Ubuntu 23.04 includes https://github.com/qt/qtbase/commit/f9e4402ffe, which during show() under certain scenarios (for example Qt::ToolTip windows) would destroy and recreate the xcb window.
Adding Qt:WindowStaysOnTopHint to the window flags for ToolTip windows prevents the xcb window from being destroyed and recreated during show().
* This distinction unfortunately does not exist in SPIR-V so we have to carry
around this metadata ourselves. Rather than allowing free specification of
tools based on API, instead pretend that Vulkan and GL SPIR-V are separate
format, and duplicate all SPIR-V tools to handle "both" types. This allows
appropriate tool selection based on the encoding.
* Doing this lets us more consistently reference the color attachments in the
correct indices and makes it easier to match for blends. It also allows the
user to show unused/empty attachments
This change exposes the
VkPipelineViewportDepthClipControlCreateInfoEXT::negativeOneToOne
pipeline state in the UI. While not a per-viewport state, this state is
output alongside viewport information.
If the extension is not used, or if this flag is false, [0, 1] is shown
as the depth clip range. If the flag is true, [-1, 1] is shown.
* This helps those who have chosen the dark theme where rich resource text uses
the default window text colour assuming it's a contrasting colour against the
background (except when highlighted).
* We store the compiler used (when known) in shader debug info and use that to
select the compiler for editing as even higher priority than the default for a
given language/encoding combination.
* We also ensure that for known tools we add the input and output parameters
last, after any custom parameters, so that they are always present regardless
of what the user puts in.
* The GL clip origin when changed from lower left to upper left will also invert
the face culling sense. This is deliberate to counteract the fact that
otherwise CW wound triangles would be CCW wound, so the flip means that if
GL_CCW is the front face state and back faces are culled, then visibly CCW
wound triangles will be culled.