mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-16 15:00:47 +00:00
Create NULL descriptors (for undefined entries) with the right type
This commit is contained in:
@@ -92,7 +92,7 @@ void D3D12Descriptor::Init(ID3D12Resource *pResource, const D3D12_DEPTH_STENCIL_
|
||||
static D3D12_SHADER_RESOURCE_VIEW_DESC *defaultSRV()
|
||||
{
|
||||
static D3D12_SHADER_RESOURCE_VIEW_DESC ret = {};
|
||||
ret.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
ret.Format = DXGI_FORMAT_R8_UNORM;
|
||||
ret.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D;
|
||||
ret.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING;
|
||||
ret.Texture2D.MipLevels = 1;
|
||||
@@ -102,7 +102,7 @@ static D3D12_SHADER_RESOURCE_VIEW_DESC *defaultSRV()
|
||||
static D3D12_RENDER_TARGET_VIEW_DESC *defaultRTV()
|
||||
{
|
||||
static D3D12_RENDER_TARGET_VIEW_DESC ret = {};
|
||||
ret.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
ret.Format = DXGI_FORMAT_R8_UNORM;
|
||||
ret.ViewDimension = D3D12_RTV_DIMENSION_TEXTURE2D;
|
||||
return &ret;
|
||||
}
|
||||
@@ -110,7 +110,7 @@ static D3D12_RENDER_TARGET_VIEW_DESC *defaultRTV()
|
||||
static D3D12_DEPTH_STENCIL_VIEW_DESC *defaultDSV()
|
||||
{
|
||||
static D3D12_DEPTH_STENCIL_VIEW_DESC ret = {};
|
||||
ret.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
ret.Format = DXGI_FORMAT_D16_UNORM;
|
||||
ret.ViewDimension = D3D12_DSV_DIMENSION_TEXTURE2D;
|
||||
return &ret;
|
||||
}
|
||||
@@ -118,12 +118,13 @@ static D3D12_DEPTH_STENCIL_VIEW_DESC *defaultDSV()
|
||||
static D3D12_UNORDERED_ACCESS_VIEW_DESC *defaultUAV()
|
||||
{
|
||||
static D3D12_UNORDERED_ACCESS_VIEW_DESC ret = {};
|
||||
ret.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
ret.Format = DXGI_FORMAT_R8_UNORM;
|
||||
ret.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE2D;
|
||||
return &ret;
|
||||
}
|
||||
|
||||
void D3D12Descriptor::Create(WrappedID3D12Device *dev, D3D12_CPU_DESCRIPTOR_HANDLE handle)
|
||||
void D3D12Descriptor::Create(D3D12_DESCRIPTOR_HEAP_TYPE heapType, WrappedID3D12Device *dev,
|
||||
D3D12_CPU_DESCRIPTOR_HANDLE handle)
|
||||
{
|
||||
D3D12Descriptor::DescriptorType type = GetType();
|
||||
|
||||
@@ -218,9 +219,16 @@ void D3D12Descriptor::Create(WrappedID3D12Device *dev, D3D12_CPU_DESCRIPTOR_HAND
|
||||
case D3D12Descriptor::TypeUndefined:
|
||||
{
|
||||
// initially descriptors are undefined. This way we just init with
|
||||
// a null SRV descriptor so it's valid to copy around etc but is no
|
||||
// a null descriptor so it's valid to copy around etc but is no
|
||||
// less undefined for the application to use
|
||||
dev->CreateShaderResourceView(NULL, defaultSRV(), handle);
|
||||
|
||||
if(heapType == D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV)
|
||||
dev->CreateShaderResourceView(NULL, defaultSRV(), handle);
|
||||
else if(heapType == D3D12_DESCRIPTOR_HEAP_TYPE_DSV)
|
||||
dev->CreateDepthStencilView(NULL, defaultDSV(), handle);
|
||||
else if(heapType == D3D12_DESCRIPTOR_HEAP_TYPE_RTV)
|
||||
dev->CreateRenderTargetView(NULL, defaultRTV(), handle);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -693,7 +701,7 @@ bool D3D12ResourceManager::Serialise_InitialState(ResourceId resid, ID3D12Device
|
||||
|
||||
for(uint32_t i = 0; i < numElems; i++)
|
||||
{
|
||||
descs[i].Create(m_Device, handle);
|
||||
descs[i].Create(desc.Type, m_Device, handle);
|
||||
|
||||
handle.ptr += increment;
|
||||
}
|
||||
|
||||
@@ -148,7 +148,8 @@ struct D3D12Descriptor
|
||||
void Init(ID3D12Resource *pResource, const D3D12_RENDER_TARGET_VIEW_DESC *pDesc);
|
||||
void Init(ID3D12Resource *pResource, const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc);
|
||||
|
||||
void Create(WrappedID3D12Device *dev, D3D12_CPU_DESCRIPTOR_HANDLE handle);
|
||||
void Create(D3D12_DESCRIPTOR_HEAP_TYPE heapType, WrappedID3D12Device *dev,
|
||||
D3D12_CPU_DESCRIPTOR_HANDLE handle);
|
||||
void CopyFrom(const D3D12Descriptor &src);
|
||||
|
||||
union
|
||||
|
||||
Reference in New Issue
Block a user