diff --git a/WickedEngine/wiGraphicsDevice.h b/WickedEngine/wiGraphicsDevice.h index af2cfef0d..0e1fd764c 100644 --- a/WickedEngine/wiGraphicsDevice.h +++ b/WickedEngine/wiGraphicsDevice.h @@ -68,6 +68,8 @@ namespace wiGraphicsTypes virtual void DestroyGraphicsPSO(GraphicsPSO* pso) = 0; virtual void DestroyComputePSO(ComputePSO* pso) = 0; + virtual void SetName(GPUResource* pResource, const std::string& name) = 0; + virtual void PresentBegin() = 0; virtual void PresentEnd() = 0; diff --git a/WickedEngine/wiGraphicsDevice_DX11.cpp b/WickedEngine/wiGraphicsDevice_DX11.cpp index 35b5c57a9..99046d4a9 100644 --- a/WickedEngine/wiGraphicsDevice_DX11.cpp +++ b/WickedEngine/wiGraphicsDevice_DX11.cpp @@ -1581,7 +1581,7 @@ void GraphicsDevice_DX11::SetResolution(int width, int height) Texture2D GraphicsDevice_DX11::GetBackBuffer() { Texture2D result; - result.texture2D_DX11 = backBuffer; + result.resource_DX11 = (wiCPUHandle)backBuffer; backBuffer->AddRef(); return result; } @@ -1609,7 +1609,7 @@ HRESULT GraphicsDevice_DX11::CreateBuffer(const GPUBufferDesc *pDesc, const Subr } ppBuffer->desc = *pDesc; - HRESULT hr = device->CreateBuffer(&desc, data, &ppBuffer->resource_DX11); + HRESULT hr = device->CreateBuffer(&desc, data, (ID3D11Buffer**)&ppBuffer->resource_DX11); SAFE_DELETE_ARRAY(data); assert(SUCCEEDED(hr) && "GPUBuffer creation failed!"); @@ -1651,7 +1651,7 @@ HRESULT GraphicsDevice_DX11::CreateBuffer(const GPUBufferDesc *pDesc, const Subr srv_desc.Buffer.NumElements = desc.ByteWidth / desc.StructureByteStride; } - hr = device->CreateShaderResourceView(ppBuffer->resource_DX11, &srv_desc, &ppBuffer->SRV_DX11); + hr = device->CreateShaderResourceView((ID3D11Resource*)ppBuffer->resource_DX11, &srv_desc, &ppBuffer->SRV_DX11); assert(SUCCEEDED(hr) && "ShaderResourceView of the GPUBuffer could not be created!"); } @@ -1685,7 +1685,7 @@ HRESULT GraphicsDevice_DX11::CreateBuffer(const GPUBufferDesc *pDesc, const Subr uav_desc.Buffer.NumElements = desc.ByteWidth / desc.StructureByteStride; } - hr = device->CreateUnorderedAccessView(ppBuffer->resource_DX11, &uav_desc, &ppBuffer->UAV_DX11); + hr = device->CreateUnorderedAccessView((ID3D11Resource*)ppBuffer->resource_DX11, &uav_desc, &ppBuffer->UAV_DX11); assert(SUCCEEDED(hr) && "UnorderedAccessView of the GPUBuffer could not be created!"); } @@ -1717,7 +1717,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture1D(const TextureDesc* pDesc, const Sub HRESULT hr = S_OK; - hr = device->CreateTexture1D(&desc, data, &((*ppTexture1D)->texture1D_DX11)); + hr = device->CreateTexture1D(&desc, data, (ID3D11Texture1D**)&((*ppTexture1D)->resource_DX11)); SAFE_DELETE_ARRAY(data); assert(SUCCEEDED(hr) && "Texture1D creation failed!"); if (FAILED(hr)) @@ -1739,7 +1739,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture1D(const TextureDesc* pDesc, const Sub uav_desc.ViewDimension = D3D11_UAV_DIMENSION_TEXTURE1D; uav_desc.Texture2D.MipSlice = 0; - hr = device->CreateUnorderedAccessView((*ppTexture1D)->texture1D_DX11, &uav_desc, &(*ppTexture1D)->UAV_DX11); + hr = device->CreateUnorderedAccessView((ID3D11Resource*)(*ppTexture1D)->resource_DX11, &uav_desc, &(*ppTexture1D)->UAV_DX11); assert(SUCCEEDED(hr) && "UnorderedAccessView of the Texture1D could not be created!"); } @@ -1783,7 +1783,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture2D(const TextureDesc* pDesc, const Sub HRESULT hr = S_OK; - hr = device->CreateTexture2D(&desc, data, &((*ppTexture2D)->texture2D_DX11)); + hr = device->CreateTexture2D(&desc, data, (ID3D11Texture2D**)&((*ppTexture2D)->resource_DX11)); assert(SUCCEEDED(hr) && "Texture2D creation failed!"); SAFE_DELETE_ARRAY(data); if (FAILED(hr)) @@ -1820,7 +1820,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture2D(const TextureDesc* pDesc, const Sub uav_desc.Texture2DArray.MipSlice = i; (*ppTexture2D)->additionalUAVs_DX11.push_back(nullptr); - hr = device->CreateUnorderedAccessView((*ppTexture2D)->texture2D_DX11, &uav_desc, &(*ppTexture2D)->additionalUAVs_DX11[i]); + hr = device->CreateUnorderedAccessView((ID3D11Resource*)(*ppTexture2D)->resource_DX11, &uav_desc, &(*ppTexture2D)->additionalUAVs_DX11[i]); assert(SUCCEEDED(hr) && "UnorderedAccessView of the Texture2D could not be created!"); } } @@ -1828,7 +1828,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture2D(const TextureDesc* pDesc, const Sub { // Create main resource UAV: uav_desc.Texture2DArray.MipSlice = 0; - hr = device->CreateUnorderedAccessView((*ppTexture2D)->texture2D_DX11, &uav_desc, &(*ppTexture2D)->UAV_DX11); + hr = device->CreateUnorderedAccessView((ID3D11Resource*)(*ppTexture2D)->resource_DX11, &uav_desc, &(*ppTexture2D)->UAV_DX11); } } else @@ -1846,7 +1846,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture2D(const TextureDesc* pDesc, const Sub uav_desc.Texture2D.MipSlice = i; (*ppTexture2D)->additionalUAVs_DX11.push_back(nullptr); - hr = device->CreateUnorderedAccessView((*ppTexture2D)->texture2D_DX11, &uav_desc, &(*ppTexture2D)->additionalUAVs_DX11[i]); + hr = device->CreateUnorderedAccessView((ID3D11Resource*)(*ppTexture2D)->resource_DX11, &uav_desc, &(*ppTexture2D)->additionalUAVs_DX11[i]); assert(SUCCEEDED(hr) && "UnorderedAccessView of the Texture2D could not be created!"); } } @@ -1854,7 +1854,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture2D(const TextureDesc* pDesc, const Sub { // Create main resource UAV: uav_desc.Texture2D.MipSlice = 0; - hr = device->CreateUnorderedAccessView((*ppTexture2D)->texture2D_DX11, &uav_desc, &(*ppTexture2D)->UAV_DX11); + hr = device->CreateUnorderedAccessView((ID3D11Resource*)(*ppTexture2D)->resource_DX11, &uav_desc, &(*ppTexture2D)->UAV_DX11); } } @@ -1887,7 +1887,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture3D(const TextureDesc* pDesc, const Sub HRESULT hr = S_OK; - hr = device->CreateTexture3D(&desc, data, &((*ppTexture3D)->texture3D_DX11)); + hr = device->CreateTexture3D(&desc, data, (ID3D11Texture3D**)&((*ppTexture3D)->resource_DX11)); SAFE_DELETE_ARRAY(data); assert(SUCCEEDED(hr) && "Texture3D creation failed!"); if (FAILED(hr)) @@ -1919,7 +1919,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture3D(const TextureDesc* pDesc, const Sub uav_desc.Texture3D.MipSlice = i; (*ppTexture3D)->additionalUAVs_DX11.push_back(nullptr); - hr = device->CreateUnorderedAccessView((*ppTexture3D)->texture3D_DX11, &uav_desc, &(*ppTexture3D)->additionalUAVs_DX11[i]); + hr = device->CreateUnorderedAccessView((ID3D11Resource*)(*ppTexture3D)->resource_DX11, &uav_desc, &(*ppTexture3D)->additionalUAVs_DX11[i]); assert(SUCCEEDED(hr) && "UnorderedAccessView of the Texture3D could not be created!"); uav_desc.Texture3D.WSize /= 2; @@ -1930,7 +1930,7 @@ HRESULT GraphicsDevice_DX11::CreateTexture3D(const TextureDesc* pDesc, const Sub // Create main resource UAV: uav_desc.Texture3D.MipSlice = 0; uav_desc.Texture3D.WSize = desc.Depth; - hr = device->CreateUnorderedAccessView((*ppTexture3D)->texture3D_DX11, &uav_desc, &(*ppTexture3D)->UAV_DX11); + hr = device->CreateUnorderedAccessView((ID3D11Resource*)(*ppTexture3D)->resource_DX11, &uav_desc, &(*ppTexture3D)->UAV_DX11); assert(SUCCEEDED(hr) && "UnorderedAccessView of the Texture3D could not be created!"); } } @@ -1968,7 +1968,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture1D* pTexture) shaderResourceViewDesc.Texture1D.MipLevels = -1; //...to least detailed } - hr = device->CreateShaderResourceView(pTexture->texture1D_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); assert(SUCCEEDED(hr) && "ShaderResourceView Creation failed!"); } @@ -2047,7 +2047,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture) shaderResourceViewDesc.Texture2DArray.MipLevels = -1; //...to least detailed } } - hr = device->CreateShaderResourceView(pTexture->texture2D_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); assert(SUCCEEDED(hr) && "ShaderResourceView Creation failed!"); @@ -2066,7 +2066,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture) shaderResourceViewDesc.TextureCubeArray.MipLevels = 1; pTexture->additionalSRVs_DX11.push_back(nullptr); - hr = device->CreateShaderResourceView(pTexture->texture2D_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2084,7 +2084,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture) shaderResourceViewDesc.Texture2DArray.MipLevels = 1; pTexture->additionalSRVs_DX11.push_back(nullptr); - hr = device->CreateShaderResourceView(pTexture->texture2D_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2106,7 +2106,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture) shaderResourceViewDesc.TextureCubeArray.MipLevels = -1; //...to least detailed pTexture->additionalSRVs_DX11.push_back(nullptr); - hr = device->CreateShaderResourceView(pTexture->texture2D_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2133,7 +2133,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture) } pTexture->additionalSRVs_DX11.push_back(nullptr); - hr = device->CreateShaderResourceView(pTexture->texture2D_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2146,7 +2146,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture) if (multisampled) { shaderResourceViewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DMS; - hr = device->CreateShaderResourceView(pTexture->texture2D_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); assert(SUCCEEDED(hr) && "ShaderResourceView Creation failed!"); } else @@ -2163,7 +2163,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture) shaderResourceViewDesc.Texture2D.MipLevels = 1; pTexture->additionalSRVs_DX11.push_back(nullptr); - hr = device->CreateShaderResourceView(pTexture->texture2D_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11.back()); assert(SUCCEEDED(hr) && "ShaderResourceView Creation failed!"); } } @@ -2172,7 +2172,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture2D* pTexture) // Create full-resource SRV: shaderResourceViewDesc.Texture2D.MostDetailedMip = 0; //from most detailed... shaderResourceViewDesc.Texture2D.MipLevels = -1; //...to least detailed - hr = device->CreateShaderResourceView(pTexture->texture2D_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); assert(SUCCEEDED(hr) && "ShaderResourceView Creation failed!"); } } @@ -2207,7 +2207,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture3D* pTexture) shaderResourceViewDesc.Texture3D.MipLevels = 1; pTexture->additionalSRVs_DX11.push_back(nullptr); - hr = device->CreateShaderResourceView(pTexture->texture3D_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11[i]); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->additionalSRVs_DX11[i]); assert(SUCCEEDED(hr) && "ShaderResourceView Creation failed!"); } } @@ -2217,7 +2217,7 @@ HRESULT GraphicsDevice_DX11::CreateShaderResourceView(Texture3D* pTexture) shaderResourceViewDesc.Texture3D.MostDetailedMip = 0; //from most detailed... shaderResourceViewDesc.Texture3D.MipLevels = -1; //...to least detailed - hr = device->CreateShaderResourceView(pTexture->texture3D_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); + hr = device->CreateShaderResourceView((ID3D11Resource*)pTexture->resource_DX11, &shaderResourceViewDesc, &pTexture->SRV_DX11); assert(SUCCEEDED(hr) && "ShaderResourceView Creation failed!"); } @@ -2261,7 +2261,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture2D* pTexture) renderTargetViewDesc.Texture2DArray.ArraySize = 1; pTexture->additionalRTVs_DX11.push_back(nullptr); - hr = device->CreateRenderTargetView(pTexture->texture2D_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[i]); + hr = device->CreateRenderTargetView((ID3D11Resource*)pTexture->resource_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[i]); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2274,7 +2274,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture2D* pTexture) renderTargetViewDesc.Texture2DArray.ArraySize = 6; pTexture->additionalRTVs_DX11.push_back(nullptr); - hr = device->CreateRenderTargetView(pTexture->texture2D_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[i]); + hr = device->CreateRenderTargetView((ID3D11Resource*)pTexture->resource_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[i]); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2284,7 +2284,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture2D* pTexture) renderTargetViewDesc.Texture2DArray.FirstArraySlice = 0; renderTargetViewDesc.Texture2DArray.ArraySize = arraySize; - hr = device->CreateRenderTargetView(pTexture->texture2D_DX11, &renderTargetViewDesc, &pTexture->RTV_DX11); + hr = device->CreateRenderTargetView((ID3D11Resource*)pTexture->resource_DX11, &renderTargetViewDesc, &pTexture->RTV_DX11); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2311,7 +2311,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture2D* pTexture) } pTexture->additionalRTVs_DX11.push_back(nullptr); - hr = device->CreateRenderTargetView(pTexture->texture2D_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[i]); + hr = device->CreateRenderTargetView((ID3D11Resource*)pTexture->resource_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[i]); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2347,7 +2347,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture2D* pTexture) } } - hr = device->CreateRenderTargetView(pTexture->texture2D_DX11, &renderTargetViewDesc, &pTexture->RTV_DX11); + hr = device->CreateRenderTargetView((ID3D11Resource*)pTexture->resource_DX11, &renderTargetViewDesc, &pTexture->RTV_DX11); assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); } } @@ -2381,7 +2381,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture3D* pTexture) renderTargetViewDesc.Texture3D.WSize = 1; pTexture->additionalRTVs_DX11.push_back(nullptr); - hr = device->CreateRenderTargetView(pTexture->texture3D_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[i]); + hr = device->CreateRenderTargetView((ID3D11Resource*)pTexture->resource_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[i]); } } @@ -2393,7 +2393,7 @@ HRESULT GraphicsDevice_DX11::CreateRenderTargetView(Texture3D* pTexture) renderTargetViewDesc.Texture3D.WSize = -1; pTexture->additionalRTVs_DX11.push_back(nullptr); - hr = device->CreateRenderTargetView(pTexture->texture3D_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[0]); + hr = device->CreateRenderTargetView((ID3D11Resource*)pTexture->resource_DX11, &renderTargetViewDesc, &pTexture->additionalRTVs_DX11[0]); } assert(SUCCEEDED(hr) && "RenderTargetView Creation failed!"); @@ -2457,7 +2457,7 @@ HRESULT GraphicsDevice_DX11::CreateDepthStencilView(Texture2D* pTexture) depthStencilViewDesc.Texture2DArray.ArraySize = 1; pTexture->additionalDSVs_DX11.push_back(nullptr); - hr = device->CreateDepthStencilView(pTexture->texture2D_DX11, &depthStencilViewDesc, &pTexture->additionalDSVs_DX11[i]); + hr = device->CreateDepthStencilView((ID3D11Resource*)pTexture->resource_DX11, &depthStencilViewDesc, &pTexture->additionalDSVs_DX11[i]); } } else if (pTexture->independentRTVArraySlices) @@ -2469,7 +2469,7 @@ HRESULT GraphicsDevice_DX11::CreateDepthStencilView(Texture2D* pTexture) depthStencilViewDesc.Texture2DArray.ArraySize = 6; pTexture->additionalDSVs_DX11.push_back(nullptr); - hr = device->CreateDepthStencilView(pTexture->texture2D_DX11, &depthStencilViewDesc, &pTexture->additionalDSVs_DX11[i]); + hr = device->CreateDepthStencilView((ID3D11Resource*)pTexture->resource_DX11, &depthStencilViewDesc, &pTexture->additionalDSVs_DX11[i]); } } @@ -2478,7 +2478,7 @@ HRESULT GraphicsDevice_DX11::CreateDepthStencilView(Texture2D* pTexture) depthStencilViewDesc.Texture2DArray.FirstArraySlice = 0; depthStencilViewDesc.Texture2DArray.ArraySize = arraySize; - hr = device->CreateDepthStencilView(pTexture->texture2D_DX11, &depthStencilViewDesc, &pTexture->DSV_DX11); + hr = device->CreateDepthStencilView((ID3D11Resource*)pTexture->resource_DX11, &depthStencilViewDesc, &pTexture->DSV_DX11); } } else @@ -2504,7 +2504,7 @@ HRESULT GraphicsDevice_DX11::CreateDepthStencilView(Texture2D* pTexture) } pTexture->additionalDSVs_DX11.push_back(nullptr); - hr = device->CreateDepthStencilView(pTexture->texture2D_DX11, &depthStencilViewDesc, &pTexture->additionalDSVs_DX11[i]); + hr = device->CreateDepthStencilView((ID3D11Resource*)pTexture->resource_DX11, &depthStencilViewDesc, &pTexture->additionalDSVs_DX11[i]); } } else @@ -2539,7 +2539,7 @@ HRESULT GraphicsDevice_DX11::CreateDepthStencilView(Texture2D* pTexture) } } - hr = device->CreateDepthStencilView(pTexture->texture2D_DX11, &depthStencilViewDesc, &pTexture->DSV_DX11); + hr = device->CreateDepthStencilView((ID3D11Resource*)pTexture->resource_DX11, &depthStencilViewDesc, &pTexture->DSV_DX11); } } @@ -2840,6 +2840,11 @@ HRESULT GraphicsDevice_DX11::CreateComputePSO(const ComputePSODesc* pDesc, Compu void GraphicsDevice_DX11::DestroyResource(GPUResource* pResource) { + if (pResource->resource_DX11 != WI_NULL_HANDLE) + { + ((ID3D11Resource*)pResource->resource_DX11)->Release(); + } + SAFE_RELEASE(pResource->SRV_DX11); for (auto& x : pResource->additionalSRVs_DX11) { @@ -2854,12 +2859,9 @@ void GraphicsDevice_DX11::DestroyResource(GPUResource* pResource) } void GraphicsDevice_DX11::DestroyBuffer(GPUBuffer *pBuffer) { - SAFE_RELEASE(pBuffer->resource_DX11); } void GraphicsDevice_DX11::DestroyTexture1D(Texture1D *pTexture1D) { - SAFE_RELEASE(pTexture1D->texture1D_DX11); - SAFE_RELEASE(pTexture1D->RTV_DX11); for (ID3D11RenderTargetView* x : pTexture1D->additionalRTVs_DX11) { @@ -2868,8 +2870,6 @@ void GraphicsDevice_DX11::DestroyTexture1D(Texture1D *pTexture1D) } void GraphicsDevice_DX11::DestroyTexture2D(Texture2D *pTexture2D) { - SAFE_RELEASE(pTexture2D->texture2D_DX11); - SAFE_RELEASE(pTexture2D->RTV_DX11); for (ID3D11RenderTargetView* x : pTexture2D->additionalRTVs_DX11) { @@ -2884,8 +2884,6 @@ void GraphicsDevice_DX11::DestroyTexture2D(Texture2D *pTexture2D) } void GraphicsDevice_DX11::DestroyTexture3D(Texture3D *pTexture3D) { - SAFE_RELEASE(pTexture3D->texture3D_DX11); - SAFE_RELEASE(pTexture3D->RTV_DX11); for (ID3D11RenderTargetView* x : pTexture3D->additionalRTVs_DX11) { @@ -2950,6 +2948,10 @@ void GraphicsDevice_DX11::DestroyComputePSO(ComputePSO* pso) { } +void GraphicsDevice_DX11::SetName(GPUResource* pResource, const std::string& name) +{ + ((ID3D11Resource*)pResource->resource_DX11)->SetPrivateData(WKPDID_D3DDebugObjectName, name.length(), name.c_str()); +} void GraphicsDevice_DX11::PresentBegin() { @@ -3350,7 +3352,7 @@ void GraphicsDevice_DX11::BindSampler(SHADERSTAGE stage, Sampler* sampler, int s } void GraphicsDevice_DX11::BindConstantBuffer(SHADERSTAGE stage, GPUBuffer* buffer, int slot, GRAPHICSTHREAD threadID) { - ID3D11Buffer* res = buffer ? buffer->resource_DX11 : nullptr; + ID3D11Buffer* res = buffer ? (ID3D11Buffer*)buffer->resource_DX11 : nullptr; switch (stage) { case wiGraphicsTypes::VS: @@ -3382,13 +3384,13 @@ void GraphicsDevice_DX11::BindVertexBuffers(GPUBuffer* const *vertexBuffers, int ID3D11Buffer* res[8] = { 0 }; for (int i = 0; i < count; ++i) { - res[i] = vertexBuffers[i] != nullptr ? vertexBuffers[i]->resource_DX11 : nullptr; + res[i] = vertexBuffers[i] != nullptr ? (ID3D11Buffer*)vertexBuffers[i]->resource_DX11 : nullptr; } deviceContexts[threadID]->IASetVertexBuffers(static_cast(slot), static_cast(count), res, strides, (offsets != nullptr ? offsets : reinterpret_cast(__nullBlob))); } void GraphicsDevice_DX11::BindIndexBuffer(GPUBuffer* indexBuffer, const INDEXBUFFER_FORMAT format, UINT offset, GRAPHICSTHREAD threadID) { - ID3D11Buffer* res = indexBuffer != nullptr ? indexBuffer->resource_DX11 : nullptr; + ID3D11Buffer* res = indexBuffer != nullptr ? (ID3D11Buffer*)indexBuffer->resource_DX11 : nullptr; deviceContexts[threadID]->IASetIndexBuffer(res, (format == INDEXBUFFER_FORMAT::INDEXFORMAT_16BIT ? DXGI_FORMAT_R16_UINT : DXGI_FORMAT_R32_UINT), offset); } void GraphicsDevice_DX11::BindStencilRef(UINT value, GRAPHICSTHREAD threadID) @@ -3540,13 +3542,13 @@ void GraphicsDevice_DX11::DrawInstancedIndirect(GPUBuffer* args, UINT args_offse { validate_raster_uavs(threadID); - deviceContexts[threadID]->DrawInstancedIndirect(args->resource_DX11, args_offset); + deviceContexts[threadID]->DrawInstancedIndirect((ID3D11Buffer*)args->resource_DX11, args_offset); } void GraphicsDevice_DX11::DrawIndexedInstancedIndirect(GPUBuffer* args, UINT args_offset, GRAPHICSTHREAD threadID) { validate_raster_uavs(threadID); - deviceContexts[threadID]->DrawIndexedInstancedIndirect(args->resource_DX11, args_offset); + deviceContexts[threadID]->DrawIndexedInstancedIndirect((ID3D11Buffer*)args->resource_DX11, args_offset); } void GraphicsDevice_DX11::Dispatch(UINT threadGroupCountX, UINT threadGroupCountY, UINT threadGroupCountZ, GRAPHICSTHREAD threadID) { @@ -3554,21 +3556,21 @@ void GraphicsDevice_DX11::Dispatch(UINT threadGroupCountX, UINT threadGroupCount } void GraphicsDevice_DX11::DispatchIndirect(GPUBuffer* args, UINT args_offset, GRAPHICSTHREAD threadID) { - deviceContexts[threadID]->DispatchIndirect(args->resource_DX11, args_offset); + deviceContexts[threadID]->DispatchIndirect((ID3D11Buffer*)args->resource_DX11, args_offset); } void GraphicsDevice_DX11::CopyTexture2D(Texture2D* pDst, Texture2D* pSrc, GRAPHICSTHREAD threadID) { - deviceContexts[threadID]->CopyResource(pDst->texture2D_DX11, pSrc->texture2D_DX11); + deviceContexts[threadID]->CopyResource((ID3D11Resource*)pDst->resource_DX11, (ID3D11Resource*)pSrc->resource_DX11); } void GraphicsDevice_DX11::CopyTexture2D_Region(Texture2D* pDst, UINT dstMip, UINT dstX, UINT dstY, Texture2D* pSrc, UINT srcMip, GRAPHICSTHREAD threadID) { - deviceContexts[threadID]->CopySubresourceRegion(pDst->texture2D_DX11, D3D11CalcSubresource(dstMip, 0, pDst->GetDesc().MipLevels), dstX, dstY, 0, - pSrc->texture2D_DX11, D3D11CalcSubresource(srcMip, 0, pSrc->GetDesc().MipLevels), nullptr); + deviceContexts[threadID]->CopySubresourceRegion((ID3D11Resource*)pDst->resource_DX11, D3D11CalcSubresource(dstMip, 0, pDst->GetDesc().MipLevels), dstX, dstY, 0, + (ID3D11Resource*)pSrc->resource_DX11, D3D11CalcSubresource(srcMip, 0, pSrc->GetDesc().MipLevels), nullptr); } void GraphicsDevice_DX11::MSAAResolve(Texture2D* pDst, Texture2D* pSrc, GRAPHICSTHREAD threadID) { assert(pDst != nullptr && pSrc != nullptr); - deviceContexts[threadID]->ResolveSubresource(pDst->texture2D_DX11, 0, pSrc->texture2D_DX11, 0, _ConvertFormat(pDst->desc.Format)); + deviceContexts[threadID]->ResolveSubresource((ID3D11Resource*)pDst->resource_DX11, 0, (ID3D11Resource*)pSrc->resource_DX11, 0, _ConvertFormat(pDst->desc.Format)); } void GraphicsDevice_DX11::UpdateBuffer(GPUBuffer* buffer, const void* data, GRAPHICSTHREAD threadID, int dataSize) { @@ -3585,14 +3587,14 @@ void GraphicsDevice_DX11::UpdateBuffer(GPUBuffer* buffer, const void* data, GRAP if (buffer->desc.Usage == USAGE_DYNAMIC) { D3D11_MAPPED_SUBRESOURCE mappedResource; - HRESULT hr = deviceContexts[threadID]->Map(buffer->resource_DX11, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); + HRESULT hr = deviceContexts[threadID]->Map((ID3D11Resource*)buffer->resource_DX11, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); assert(SUCCEEDED(hr) && "GPUBuffer mapping failed!"); memcpy(mappedResource.pData, data, (dataSize >= 0 ? dataSize : buffer->desc.ByteWidth)); - deviceContexts[threadID]->Unmap(buffer->resource_DX11, 0); + deviceContexts[threadID]->Unmap((ID3D11Resource*)buffer->resource_DX11, 0); } else if (buffer->desc.BindFlags & BIND_CONSTANT_BUFFER || dataSize < 0) { - deviceContexts[threadID]->UpdateSubresource(buffer->resource_DX11, 0, nullptr, data, 0, 0); + deviceContexts[threadID]->UpdateSubresource((ID3D11Resource*)buffer->resource_DX11, 0, nullptr, data, 0, 0); } else { @@ -3603,7 +3605,7 @@ void GraphicsDevice_DX11::UpdateBuffer(GPUBuffer* buffer, const void* data, GRAP box.bottom = 1; box.front = 0; box.back = 1; - deviceContexts[threadID]->UpdateSubresource(buffer->resource_DX11, 0, &box, data, 0, 0); + deviceContexts[threadID]->UpdateSubresource((ID3D11Resource*)buffer->resource_DX11, 0, &box, data, 0, 0); } } void* GraphicsDevice_DX11::AllocateFromRingBuffer(GPURingBuffer* buffer, size_t dataSize, UINT& offsetIntoBuffer, GRAPHICSTHREAD threadID) @@ -3625,7 +3627,7 @@ void* GraphicsDevice_DX11::AllocateFromRingBuffer(GPURingBuffer* buffer, size_t // Issue buffer rename (realloc) on wrap, otherwise just append data: D3D11_MAP mapping = wrap ? D3D11_MAP_WRITE_DISCARD : D3D11_MAP_WRITE_NO_OVERWRITE; D3D11_MAPPED_SUBRESOURCE mappedResource; - HRESULT hr = deviceContexts[threadID]->Map(buffer->resource_DX11, 0, mapping, 0, &mappedResource); + HRESULT hr = deviceContexts[threadID]->Map((ID3D11Resource*)buffer->resource_DX11, 0, mapping, 0, &mappedResource); assert(SUCCEEDED(hr) && "GPUBuffer mapping failed!"); // Thread safety is compromised! @@ -3637,7 +3639,7 @@ void* GraphicsDevice_DX11::AllocateFromRingBuffer(GPURingBuffer* buffer, size_t } void GraphicsDevice_DX11::InvalidateBufferAccess(GPUBuffer* buffer, GRAPHICSTHREAD threadID) { - deviceContexts[threadID]->Unmap(buffer->resource_DX11, 0); + deviceContexts[threadID]->Unmap((ID3D11Resource*)buffer->resource_DX11, 0); } bool GraphicsDevice_DX11::DownloadBuffer(GPUBuffer* bufferToDownload, GPUBuffer* bufferDest, void* dataDest, GRAPHICSTHREAD threadID) { @@ -3645,15 +3647,15 @@ bool GraphicsDevice_DX11::DownloadBuffer(GPUBuffer* bufferToDownload, GPUBuffer* assert(bufferDest->desc.Usage & USAGE_STAGING); assert(dataDest != nullptr); - deviceContexts[threadID]->CopyResource(bufferDest->resource_DX11, bufferToDownload->resource_DX11); + deviceContexts[threadID]->CopyResource((ID3D11Resource*)bufferDest->resource_DX11, (ID3D11Resource*)bufferToDownload->resource_DX11); D3D11_MAPPED_SUBRESOURCE mappedResource = {}; - HRESULT hr = deviceContexts[threadID]->Map(bufferDest->resource_DX11, 0, D3D11_MAP_READ, /*async ? D3D11_MAP_FLAG_DO_NOT_WAIT :*/ 0, &mappedResource); + HRESULT hr = deviceContexts[threadID]->Map((ID3D11Resource*)bufferDest->resource_DX11, 0, D3D11_MAP_READ, /*async ? D3D11_MAP_FLAG_DO_NOT_WAIT :*/ 0, &mappedResource); bool result = SUCCEEDED(hr); if (result) { memcpy(dataDest, mappedResource.pData, bufferToDownload->desc.ByteWidth); - deviceContexts[threadID]->Unmap(bufferDest->resource_DX11, 0); + deviceContexts[threadID]->Unmap((ID3D11Resource*)bufferDest->resource_DX11, 0); } return result; @@ -3722,7 +3724,7 @@ HRESULT GraphicsDevice_DX11::SaveTexturePNG(const std::string& fileName, Texture Texture2D* tex2D = dynamic_cast(pTexture); if (tex2D != nullptr) { - return SaveWICTextureToFile(deviceContexts[threadID], pTexture->texture2D_DX11, GUID_ContainerFormatPng, wstring(fileName.begin(), fileName.end()).c_str()); + return SaveWICTextureToFile(deviceContexts[threadID], (ID3D11Resource*)pTexture->resource_DX11, GUID_ContainerFormatPng, wstring(fileName.begin(), fileName.end()).c_str()); } return E_FAIL; } @@ -3731,7 +3733,7 @@ HRESULT GraphicsDevice_DX11::SaveTextureDDS(const std::string& fileName, Texture Texture2D* tex2D = dynamic_cast(pTexture); if (tex2D != nullptr) { - return SaveDDSTextureToFile(deviceContexts[threadID], tex2D->texture2D_DX11, wstring(fileName.begin(), fileName.end()).c_str()); + return SaveDDSTextureToFile(deviceContexts[threadID], (ID3D11Resource*)tex2D->resource_DX11, wstring(fileName.begin(), fileName.end()).c_str()); } return E_FAIL; } diff --git a/WickedEngine/wiGraphicsDevice_DX11.h b/WickedEngine/wiGraphicsDevice_DX11.h index 3a6596586..00a1a587e 100644 --- a/WickedEngine/wiGraphicsDevice_DX11.h +++ b/WickedEngine/wiGraphicsDevice_DX11.h @@ -13,6 +13,8 @@ struct ID3DUserDefinedAnnotation; enum D3D_DRIVER_TYPE; enum D3D_FEATURE_LEVEL; +struct ID3D11Texture2D; + namespace wiGraphicsTypes { @@ -98,6 +100,9 @@ namespace wiGraphicsTypes virtual void DestroyGraphicsPSO(GraphicsPSO* pso) override; virtual void DestroyComputePSO(ComputePSO* pso) override; + + virtual void SetName(GPUResource* pResource, const std::string& name) override; + virtual void PresentBegin() override; virtual void PresentEnd() override; diff --git a/WickedEngine/wiGraphicsDevice_DX12.cpp b/WickedEngine/wiGraphicsDevice_DX12.cpp index 2f21d19d7..ded5f2aa3 100644 --- a/WickedEngine/wiGraphicsDevice_DX12.cpp +++ b/WickedEngine/wiGraphicsDevice_DX12.cpp @@ -3272,6 +3272,12 @@ namespace wiGraphicsTypes } + void GraphicsDevice_DX12::SetName(GPUResource* pResource, const std::string& name) + { + ((ID3D12Resource*)pResource->resource_DX12)->SetName(wstring(name.begin(), name.end()).c_str()); + } + + void GraphicsDevice_DX12::PresentBegin() { // Sync up copy queue: diff --git a/WickedEngine/wiGraphicsDevice_DX12.h b/WickedEngine/wiGraphicsDevice_DX12.h index 959ee3747..0bfaf03c1 100644 --- a/WickedEngine/wiGraphicsDevice_DX12.h +++ b/WickedEngine/wiGraphicsDevice_DX12.h @@ -194,6 +194,8 @@ namespace wiGraphicsTypes virtual void DestroyGraphicsPSO(GraphicsPSO* pso) override; virtual void DestroyComputePSO(ComputePSO* pso) override; + virtual void SetName(GPUResource* pResource, const std::string& name) override; + virtual void PresentBegin() override; virtual void PresentEnd() override; diff --git a/WickedEngine/wiGraphicsDevice_Vulkan.cpp b/WickedEngine/wiGraphicsDevice_Vulkan.cpp index 7416acade..ad2393c86 100644 --- a/WickedEngine/wiGraphicsDevice_Vulkan.cpp +++ b/WickedEngine/wiGraphicsDevice_Vulkan.cpp @@ -4133,6 +4133,12 @@ namespace wiGraphicsTypes } + void GraphicsDevice_Vulkan::SetName(GPUResource* pResource, const std::string& name) + { + + } + + void GraphicsDevice_Vulkan::PresentBegin() { // Sync up copy queue: diff --git a/WickedEngine/wiGraphicsDevice_Vulkan.h b/WickedEngine/wiGraphicsDevice_Vulkan.h index fbcdf214e..b48d884fa 100644 --- a/WickedEngine/wiGraphicsDevice_Vulkan.h +++ b/WickedEngine/wiGraphicsDevice_Vulkan.h @@ -234,6 +234,8 @@ namespace wiGraphicsTypes virtual void DestroyGraphicsPSO(GraphicsPSO* pso) override; virtual void DestroyComputePSO(ComputePSO* pso) override; + virtual void SetName(GPUResource* pResource, const std::string& name) override; + virtual void PresentBegin() override; virtual void PresentEnd() override; diff --git a/WickedEngine/wiGraphicsResource.cpp b/WickedEngine/wiGraphicsResource.cpp index d1b6d9455..43f3ae271 100644 --- a/WickedEngine/wiGraphicsResource.cpp +++ b/WickedEngine/wiGraphicsResource.cpp @@ -97,6 +97,7 @@ namespace wiGraphicsTypes SAFE_INIT(UAV_DX11); UAV_DX12 = WI_NULL_HANDLE; UAV_Vulkan = WI_NULL_HANDLE; + resource_DX11 = WI_NULL_HANDLE; resource_DX12 = WI_NULL_HANDLE; resource_Vulkan = WI_NULL_HANDLE; resourceMemory_Vulkan = WI_NULL_HANDLE; @@ -111,7 +112,6 @@ namespace wiGraphicsTypes GPUBuffer::GPUBuffer() : GPUResource() { - SAFE_INIT(resource_DX11); CBV_DX12 = WI_NULL_HANDLE; } GPUBuffer::~GPUBuffer() @@ -204,7 +204,6 @@ namespace wiGraphicsTypes Texture1D::Texture1D() :Texture() { - SAFE_INIT(texture1D_DX11); } Texture1D::~Texture1D() { @@ -216,7 +215,6 @@ namespace wiGraphicsTypes Texture2D::Texture2D() :Texture() { - SAFE_INIT(texture2D_DX11); SAFE_INIT(DSV_DX11); DSV_DX12 = WI_NULL_HANDLE; DSV_Vulkan = WI_NULL_HANDLE; @@ -231,7 +229,6 @@ namespace wiGraphicsTypes Texture3D::Texture3D() :Texture() { - SAFE_INIT(texture3D_DX11); } Texture3D::~Texture3D() { diff --git a/WickedEngine/wiGraphicsResource.h b/WickedEngine/wiGraphicsResource.h index b01e2fd54..b484063f5 100644 --- a/WickedEngine/wiGraphicsResource.h +++ b/WickedEngine/wiGraphicsResource.h @@ -15,7 +15,6 @@ struct ID3D11ComputeShader; struct ID3D11SamplerState; struct ID3D11ShaderResourceView; struct ID3D11UnorderedAccessView; -struct ID3D11Buffer; struct ID3D11InputLayout; struct ID3D11BlendState; struct ID3D11DepthStencilState; @@ -23,9 +22,6 @@ struct ID3D11RasterizerState; struct ID3D11RasterizerState2; struct ID3D11RenderTargetView; struct ID3D11DepthStencilView; -struct ID3D11Texture1D; -struct ID3D11Texture2D; -struct ID3D11Texture3D; struct ID3D11Query; struct ID3D11Predicate; @@ -173,6 +169,7 @@ namespace wiGraphicsTypes wiCPUHandle UAV_Vulkan; // main resource UAV std::vector additionalUAVs_Vulkan; // can be used for sub-resources if requested + wiCPUHandle resource_DX11; wiCPUHandle resource_DX12; wiCPUHandle resource_Vulkan; wiCPUHandle resourceMemory_Vulkan; @@ -187,14 +184,13 @@ namespace wiGraphicsTypes friend class GraphicsDevice_DX12; friend class GraphicsDevice_Vulkan; private: - ID3D11Buffer* resource_DX11; wiCPUHandle CBV_DX12; GPUBufferDesc desc; public: GPUBuffer(); virtual ~GPUBuffer(); - bool IsValid() { return resource_DX11 != nullptr || resource_DX12 != WI_NULL_HANDLE || resource_Vulkan != WI_NULL_HANDLE; } + bool IsValid() { return resource_DX11 != WI_NULL_HANDLE || resource_DX12 != WI_NULL_HANDLE || resource_Vulkan != WI_NULL_HANDLE; } GPUBufferDesc GetDesc() { return desc; } }; @@ -315,7 +311,6 @@ namespace wiGraphicsTypes friend class GraphicsDevice_DX12; friend class GraphicsDevice_Vulkan; private: - ID3D11Texture1D* texture1D_DX11; public: Texture1D(); virtual ~Texture1D(); @@ -334,7 +329,6 @@ namespace wiGraphicsTypes wiCPUHandle DSV_Vulkan; std::vector additionalDSVs_Vulkan; - ID3D11Texture2D* texture2D_DX11; public: Texture2D(); virtual ~Texture2D(); @@ -346,7 +340,6 @@ namespace wiGraphicsTypes friend class GraphicsDevice_DX12; friend class GraphicsDevice_Vulkan; private: - ID3D11Texture3D* texture3D_DX11; public: Texture3D(); virtual ~Texture3D(); diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index e479dd7a6..4e0fa6c7c 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -552,6 +552,7 @@ void wiRenderer::LoadBuffers() bd.CPUAccessFlags = CPU_ACCESS_WRITE; bd.MiscFlags = 0; GetDevice()->CreateBuffer(&bd, nullptr, dynamicVertexBufferPool); + GetDevice()->SetName(dynamicVertexBufferPool, "DynamicVertexBufferPool"); for (int i = 0; i < CBTYPE_LAST; ++i) @@ -569,9 +570,11 @@ void wiRenderer::LoadBuffers() bd.Usage = USAGE_DEFAULT; bd.ByteWidth = sizeof(WorldCB); GetDevice()->CreateBuffer(&bd, nullptr, constantBuffers[CBTYPE_WORLD]); + GetDevice()->SetName(constantBuffers[CBTYPE_WORLD], "PerWorldConstantBuffer"); bd.ByteWidth = sizeof(FrameCB); GetDevice()->CreateBuffer(&bd, nullptr, constantBuffers[CBTYPE_FRAME]); + GetDevice()->SetName(constantBuffers[CBTYPE_FRAME], "PerFrameConstantBuffer"); // The other constant buffers will be updated frequently (> per frame) so they should reside in DYNAMIC GPU memory! bd.Usage = USAGE_DYNAMIC; @@ -579,12 +582,15 @@ void wiRenderer::LoadBuffers() bd.ByteWidth = sizeof(CameraCB); GetDevice()->CreateBuffer(&bd, nullptr, constantBuffers[CBTYPE_CAMERA]); + GetDevice()->SetName(constantBuffers[CBTYPE_FRAME], "PerFrameConstantBuffer"); bd.ByteWidth = sizeof(MiscCB); GetDevice()->CreateBuffer(&bd, nullptr, constantBuffers[CBTYPE_MISC]); + GetDevice()->SetName(constantBuffers[CBTYPE_MISC], "MiscConstantBuffer"); bd.ByteWidth = sizeof(APICB); GetDevice()->CreateBuffer(&bd, nullptr, constantBuffers[CBTYPE_API]); + GetDevice()->SetName(constantBuffers[CBTYPE_API], "APIConstantBuffer"); // On demand buffers... @@ -6668,6 +6674,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, bvhNodeBuffer); assert(SUCCEEDED(hr)); + device->SetName(bvhNodeBuffer, "BVHNodeBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(BVHAABB); @@ -6678,6 +6685,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, bvhAABBBuffer); assert(SUCCEEDED(hr)); + device->SetName(bvhAABBBuffer, "BVHAABBBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(uint); @@ -6688,6 +6696,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, bvhFlagBuffer); assert(SUCCEEDED(hr)); + device->SetName(bvhFlagBuffer, "BVHFlagBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(BVHMeshTriangle); @@ -6698,6 +6707,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, triangleBuffer); assert(SUCCEEDED(hr)); + device->SetName(triangleBuffer, "BVHTriangleBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(uint); @@ -6708,6 +6718,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, clusterCounterBuffer); assert(SUCCEEDED(hr)); + device->SetName(clusterCounterBuffer, "BVHClusterCounterBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(uint); @@ -6718,6 +6729,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, clusterIndexBuffer); assert(SUCCEEDED(hr)); + device->SetName(clusterIndexBuffer, "BVHClusterIndexBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(uint); @@ -6729,6 +6741,8 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) hr = device->CreateBuffer(&desc, nullptr, clusterMortonBuffer); hr = device->CreateBuffer(&desc, nullptr, clusterSortedMortonBuffer); assert(SUCCEEDED(hr)); + device->SetName(clusterMortonBuffer, "BVHClusterMortonBuffer"); + device->SetName(clusterSortedMortonBuffer, "BVHSortedClusterMortonBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(uint2); @@ -6739,6 +6753,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, clusterOffsetBuffer); assert(SUCCEEDED(hr)); + device->SetName(clusterOffsetBuffer, "BVHClusterOffsetBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(BVHAABB); @@ -6749,6 +6764,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, clusterAABBBuffer); assert(SUCCEEDED(hr)); + device->SetName(clusterAABBBuffer, "BVHClusterAABBBuffer"); desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; desc.StructureByteStride = sizeof(ClusterCone); @@ -6759,6 +6775,7 @@ void wiRenderer::BuildSceneBVH(GRAPHICSTHREAD threadID) desc.Usage = USAGE_DEFAULT; hr = device->CreateBuffer(&desc, nullptr, clusterConeBuffer); assert(SUCCEEDED(hr)); + device->SetName(clusterConeBuffer, "BVHClusterConeBuffer"); } static GPUBuffer* indirectBuffer = nullptr; // GPU job kicks diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index abe131e38..72f315ce7 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wiVersion // minor features, major updates const int minor = 19; // minor bug fixes, alterations, refactors, updates - const int revision = 6; + const int revision = 7; long GetVersion()