* It's possible to create a TLAS referencing a BLAS, destroy the buffer backing
the BLAS, and we won't know the TLAS is invalid and will try to serialise it.
Xe is the new KMD driver for Intel GPUs on Linux, replacing i915
on LNL and newer.
So here just checking if '/proc/sys/dev/xe/perf_stream_paranoid' is also
set to 0 and printing debug messages when it is set to 1.
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
* Calling vkGetImageMemoryRequirements on AHB-backed images before binding is out-of-spec, so that is now deferred until bind
* Calling vkCreateImage with an undefined format will cause an error to be returned
Added:
void Parse(const DXBC::Reflection *reflection);
void ParseReferences(const DXBC::Reflection *reflection);
const ResourceReference *GetResourceReference(const rdcstr &handleStr) const;
rdcstr GetResourceReferenceName(ResourceClass resClass, const BindingSlot &slot) const;
Changed:
void FetchEntryPointInterfaces(rdcarray<EntryPointInterface> &entryPointInterfaces);
to
void FillEntryPointInterfaces(); and store the entry point interface data in new member variable "m_EntryPointInterfaces"
To get the SSA names for handles that are referenced by createHandle calls
Added DoStringise() for DXIL::ResourceClass
* These resources are destroyed on capture shutdown and possibly out of order
between ASs and ASBs. The ownership tracking is not needed on replay so only
do this during capture.
Added function ShaderObject::Init to initialize VulkanCreationInfo::ShaderObject, and associated shader module.
Co-authored-by: James Sumihiro <james.sumihiro@ntd.nintendo.com>
renderdoc/driver/d3d12/d3d12_dxil_debug.[h,cpp]
Will contain replay helper functions for DXIL debugger including the wrapper for D3D12 API interaction i.e. "DXILDebug::D3D12APIWrapper"
Before, RenderDoc would treat these incomplete pipeline libraries as if
they were complete pipelines, and thus attempt to create pipelines with
incomplete data, producing several validation errors and on some devices
crashes.
For instance, a pipeline library that only contains a vertex or fragment
shader but not input assembly state would use invalid input assembly
state (specifically, VulkanShaderCache::MakeGraphicsPipelineInfo would
use the topology value from VulkanCreationInfo::Pipeline, which is set
to VK_PRIMITIVE_TOPOLOGY_MAX_ENUM (0x7fffffff) if the pipeline has no
input assembly state by VulkanCreationInfo::Pipeline::Init).
Additionally, those pipeline libraries were treated as complete graphics
pipelines, not libraries, as VulkanShaderCache::MakeGraphicsPipelineInfo
removes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR and no
VkGraphicsPipelineLibraryCreateInfoEXT was added to the pNext chain.
RenderDoc already merges the pipeline libraries into complete graphics
pipelines, so there is no reason to recreate the libraries with modified
shaders.
Added logic to return a fake UUID for shader binaries if vkGetShaderBinaryDataEXT is called.
Co-authored-by: James Sumihiro <james.sumihiro@ntd.nintendo.com>