diff --git a/libobs-d3d11/d3d11-subsystem.hpp b/libobs-d3d11/d3d11-subsystem.hpp index 28729a5c9..0fee8b0aa 100644 --- a/libobs-d3d11/d3d11-subsystem.hpp +++ b/libobs-d3d11/d3d11-subsystem.hpp @@ -114,11 +114,14 @@ static inline gs_color_format ConvertDXGITextureFormat(DXGI_FORMAT format) return GS_R8; case DXGI_FORMAT_R8G8_UNORM: return GS_R8G8; + case DXGI_FORMAT_R8G8B8A8_TYPELESS: case DXGI_FORMAT_R8G8B8A8_UNORM: return GS_RGBA; case DXGI_FORMAT_B8G8R8X8_UNORM: + case DXGI_FORMAT_B8G8R8X8_TYPELESS: return GS_BGRX; case DXGI_FORMAT_B8G8R8A8_UNORM: + case DXGI_FORMAT_B8G8R8A8_TYPELESS: return GS_BGRA; case DXGI_FORMAT_R10G10B10A2_UNORM: return GS_R10G10B10A2; diff --git a/libobs-d3d11/d3d11-texture2d.cpp b/libobs-d3d11/d3d11-texture2d.cpp index 975d5b3c1..05b4b9189 100644 --- a/libobs-d3d11/d3d11-texture2d.cpp +++ b/libobs-d3d11/d3d11-texture2d.cpp @@ -302,7 +302,7 @@ gs_texture_2d::gs_texture_2d(gs_device_t *device, uint32_t handle) this->dxgiFormat = td.Format; memset(&resourceDesc, 0, sizeof(resourceDesc)); - resourceDesc.Format = td.Format; + resourceDesc.Format = ConvertGSTextureFormat(this->format); resourceDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; resourceDesc.Texture2D.MipLevels = 1; @@ -329,7 +329,7 @@ gs_texture_2d::gs_texture_2d(gs_device_t *device, ID3D11Texture2D *obj) this->dxgiFormat = td.Format; memset(&resourceDesc, 0, sizeof(resourceDesc)); - resourceDesc.Format = td.Format; + resourceDesc.Format = ConvertGSTextureFormat(this->format); resourceDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; resourceDesc.Texture2D.MipLevels = 1;