From c6b77f6c620faa2fd9a9662079b083b266d4e0a2 Mon Sep 17 00:00:00 2001 From: aliaspider Date: Sun, 15 Nov 2020 15:07:53 +0100 Subject: [PATCH] (D3D11) get the hwrender texture format from the view desc the format set in the texture desc isn't necessarily the same as the view format. --- gfx/common/d3d11_common.h | 5 +++++ gfx/drivers/d3d11.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gfx/common/d3d11_common.h b/gfx/common/d3d11_common.h index 42256dd4f7..b538145030 100644 --- a/gfx/common/d3d11_common.h +++ b/gfx/common/d3d11_common.h @@ -141,6 +141,11 @@ static INLINE void D3D11GetShaderResourceViewTexture2D( { shader_resource_view->lpVtbl->GetResource(shader_resource_view, (D3D11Resource*)texture2d); } +static INLINE void D3D11GetShaderResourceViewDesc( + D3D11ShaderResourceView shader_resource_view, D3D11_SHADER_RESOURCE_VIEW_DESC* desc) +{ + shader_resource_view->lpVtbl->GetDesc(shader_resource_view, desc); +} static INLINE void D3D11GetRenderTargetViewResource(D3D11RenderTargetView render_target_view, D3D11Resource* resource) { diff --git a/gfx/drivers/d3d11.c b/gfx/drivers/d3d11.c index f337785052..78512d0914 100644 --- a/gfx/drivers/d3d11.c +++ b/gfx/drivers/d3d11.c @@ -1338,11 +1338,11 @@ static bool d3d11_gfx_frame( D3D11Texture2D hw_texture = NULL; if (frame == RETRO_HW_FRAME_BUFFER_VALID) { - D3D11_TEXTURE2D_DESC hw_desc; + D3D11_SHADER_RESOURCE_VIEW_DESC hw_desc; D3D11ShaderResourceView hw_view = NULL; D3D11GetPShaderResources(context, 0, 1, &hw_view); + D3D11GetShaderResourceViewDesc(hw_view, &hw_desc); D3D11GetShaderResourceViewTexture2D(hw_view, &hw_texture); - D3D11GetTexture2DDesc(hw_texture, &hw_desc); if (d3d11->frame.texture[0].desc.Format != hw_desc.Format) {