Skip to content

Commit

Permalink
Fixed D3D11 HDR bug just introduced
Browse files Browse the repository at this point in the history
  • Loading branch information
MajorPainTheCactus committed Mar 14, 2022
1 parent 258f0ca commit 8fd35da
Show file tree
Hide file tree
Showing 2 changed files with 3,221 additions and 1,039 deletions.
35 changes: 13 additions & 22 deletions gfx/drivers/d3d11.c
Original file line number Diff line number Diff line change
Expand Up @@ -1076,18 +1076,12 @@ static bool d3d11_init_swapchain(d3d11_video_t* d3d11,
d3d11->hdr.max_cll,
d3d11->hdr.max_fall);

DXGI_FORMAT back_buffer_format = d3d11->shader_preset && d3d11->shader_preset->passes ? glslang_format_to_dxgi(d3d11->pass[d3d11->shader_preset->passes - 1].semantics.format) : DXGI_FORMAT_R8G8B8A8_UNORM;
bool use_back_buffer = back_buffer_format == d3d11->chain_formats[d3d11->chain_bit_depth];

if(use_back_buffer)
{
memset(&d3d11->back_buffer, 0, sizeof(d3d11->back_buffer));
d3d11->back_buffer.desc.Width = width;
d3d11->back_buffer.desc.Height = height;
d3d11->back_buffer.desc.Format = back_buffer_format;
d3d11->back_buffer.desc.BindFlags = D3D11_BIND_RENDER_TARGET;
d3d11_init_texture(d3d11->device, &d3d11->back_buffer);
}
memset(&d3d11->back_buffer, 0, sizeof(d3d11->back_buffer));
d3d11->back_buffer.desc.Width = width;
d3d11->back_buffer.desc.Height = height;
d3d11->back_buffer.desc.Format = d3d11->shader_preset && d3d11->shader_preset->passes ? glslang_format_to_dxgi(d3d11->pass[d3d11->shader_preset->passes - 1].semantics.format) : DXGI_FORMAT_R8G8B8A8_UNORM;
d3d11->back_buffer.desc.BindFlags = D3D11_BIND_RENDER_TARGET;
d3d11_init_texture(d3d11->device, &d3d11->back_buffer);
#endif

dxgiFactory->lpVtbl->Release(dxgiFactory);
Expand Down Expand Up @@ -1780,7 +1774,7 @@ static bool d3d11_gfx_frame(
#ifdef HAVE_DXGI_HDR
bool video_hdr_enable = video_info->hdr_enable;
DXGI_FORMAT back_buffer_format = d3d11->shader_preset && d3d11->shader_preset->passes ? glslang_format_to_dxgi(d3d11->pass[d3d11->shader_preset->passes - 1].semantics.format) : DXGI_FORMAT_R8G8B8A8_UNORM;
bool use_back_buffer = back_buffer_format == d3d11->chain_formats[d3d11->chain_bit_depth];
bool use_back_buffer = back_buffer_format != d3d11->chain_formats[d3d11->chain_bit_depth];

if ( d3d11->resize_chain ||
(d3d11->hdr.enable != video_hdr_enable))
Expand Down Expand Up @@ -1829,15 +1823,12 @@ static bool d3d11_gfx_frame(

if(d3d11->hdr.enable)
{
if(use_back_buffer)
{
memset(&d3d11->back_buffer, 0, sizeof(d3d11->back_buffer));
d3d11->back_buffer.desc.Width = video_width;
d3d11->back_buffer.desc.Height = video_height;
d3d11->back_buffer.desc.Format = back_buffer_format;
d3d11->back_buffer.desc.BindFlags = D3D11_BIND_RENDER_TARGET;
d3d11_init_texture(d3d11->device, &d3d11->back_buffer);
}
memset(&d3d11->back_buffer, 0, sizeof(d3d11->back_buffer));
d3d11->back_buffer.desc.Width = video_width;
d3d11->back_buffer.desc.Height = video_height;
d3d11->back_buffer.desc.Format = back_buffer_format;
d3d11->back_buffer.desc.BindFlags = D3D11_BIND_RENDER_TARGET;
d3d11_init_texture(d3d11->device, &d3d11->back_buffer);

dxgi_swapchain_color_space(
d3d11->swapChain,
Expand Down
Loading

0 comments on commit 8fd35da

Please sign in to comment.