Skip to content

Commit

Permalink
Merge pull request obsproject#2921 from jpark37/vulkan-format-fail
Browse files Browse the repository at this point in the history
win-capture: Fail on unsupported Vulkan formats
  • Loading branch information
jp9000 authored May 22, 2020
2 parents c5187ae + 30f6870 commit ad919b4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 13 deletions.
22 changes: 15 additions & 7 deletions plugins/win-capture/graphics-hook/vulkan-capture.c
Original file line number Diff line number Diff line change
Expand Up @@ -471,16 +471,24 @@ static inline bool vk_shtex_init_d3d11_tex(struct vk_data *data,
IDXGIResource *dxgi_res;
HRESULT hr;

const UINT width = swap->image_extent.width;
const UINT height = swap->image_extent.height;

flog("OBS requesting %s texture format. capture dimensions: %ux%u",
vk_format_to_str(swap->format), width, height);

const DXGI_FORMAT format = vk_format_to_dxgi(swap->format);
if (format == DXGI_FORMAT_UNKNOWN) {
flog("cannot convert to DXGI format");
return false;
}

D3D11_TEXTURE2D_DESC desc = {0};
desc.Width = swap->image_extent.width;
desc.Height = swap->image_extent.height;
desc.Width = width;
desc.Height = height;
desc.MipLevels = 1;
desc.ArraySize = 1;

flog("OBS requesting %s texture format. capture dimensions: %dx%d",
vk_format_to_str(swap->format), (int)desc.Width, (int)desc.Height);

desc.Format = vk_format_to_dxgi(swap->format);
desc.Format = format;
desc.SampleDesc.Count = 1;
desc.SampleDesc.Quality = 0;
desc.Usage = D3D11_USAGE_DEFAULT;
Expand Down
6 changes: 0 additions & 6 deletions plugins/win-capture/graphics-hook/vulkan-capture.h
Original file line number Diff line number Diff line change
Expand Up @@ -474,7 +474,6 @@ DXGI_FORMAT vk_format_to_dxgi(VkFormat format)
case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
break;
case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
dxgi_format = DXGI_FORMAT_R10G10B10A2_UNORM;
break;
case VK_FORMAT_A2R10G10B10_SNORM_PACK32:
break;
Expand Down Expand Up @@ -842,11 +841,6 @@ DXGI_FORMAT vk_format_to_dxgi(VkFormat format)
case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:
break;
}
if (dxgi_format == DXGI_FORMAT_UNKNOWN) {
flog("unknown swapchain format, "
"defaulting to B8G8R8A8_UNORM");
dxgi_format = DXGI_FORMAT_B8G8R8A8_UNORM;
}
return dxgi_format;
}

Expand Down

0 comments on commit ad919b4

Please sign in to comment.