1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00

d3d11: Report support for shader stencil export if available.

This commit is contained in:
Zebediah Figura 2022-03-20 20:21:59 -05:00 committed by Alexandre Julliard
parent 5efd4b64f6
commit 775812ab11
6 changed files with 15 additions and 1 deletions

View file

@ -4171,7 +4171,16 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CheckFeatureSupport(ID3D11Device2
return E_INVALIDARG;
}
options->PSSpecifiedStencilRefSupported = FALSE;
wined3d_mutex_lock();
hr = wined3d_device_get_device_caps(device->wined3d_device, &wined3d_caps);
wined3d_mutex_unlock();
if (FAILED(hr))
{
WARN("Failed to get device caps, hr %#lx.\n", hr);
return hr;
}
options->PSSpecifiedStencilRefSupported = wined3d_caps.stencil_export;
options->TypedUAVLoadAdditionalFormats = FALSE;
options->ROVsSupported = FALSE;
options->ConservativeRasterizationTier = D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED;

View file

@ -5196,6 +5196,7 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_
d3d_info->shader_output_interpolation = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_OUTPUT_INTERPOLATION);
d3d_info->frag_coord_correction = !!gl_info->supported[ARB_FRAGMENT_COORD_CONVENTIONS];
d3d_info->viewport_array_index_any_shader = !!gl_info->supported[ARB_SHADER_VIEWPORT_LAYER_ARRAY];
d3d_info->stencil_export = !!gl_info->supported[ARB_SHADER_STENCIL_EXPORT];
d3d_info->texture_npot = !!gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO];
d3d_info->texture_npot_conditional = gl_info->supported[WINED3D_GL_NORMALIZED_TEXRECT]
|| gl_info->supported[ARB_TEXTURE_RECTANGLE];

View file

@ -2306,6 +2306,7 @@ static void wined3d_adapter_vk_init_d3d_info(struct wined3d_adapter_vk *adapter_
d3d_info->shader_double_precision = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_DOUBLE_PRECISION);
d3d_info->shader_output_interpolation = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_OUTPUT_INTERPOLATION);
d3d_info->viewport_array_index_any_shader = false; /* VK_EXT_shader_viewport_index_layer */
d3d_info->stencil_export = vk_info->supported[WINED3D_VK_EXT_SHADER_STENCIL_EXPORT];
d3d_info->texture_npot = true;
d3d_info->texture_npot_conditional = true;
d3d_info->normalized_texrect = false;

View file

@ -2709,6 +2709,7 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d_adapter *adapter,
caps->shader_double_precision = d3d_info->shader_double_precision;
caps->viewport_array_index_any_shader = d3d_info->viewport_array_index_any_shader;
caps->stencil_export = d3d_info->stencil_export;
caps->max_feature_level = d3d_info->feature_level;

View file

@ -221,6 +221,7 @@ struct wined3d_d3d_info
uint32_t shader_output_interpolation : 1;
uint32_t frag_coord_correction : 1;
uint32_t viewport_array_index_any_shader : 1;
uint32_t stencil_export : 1;
uint32_t texture_npot : 1;
uint32_t texture_npot_conditional : 1;
uint32_t normalized_texrect : 1;

View file

@ -2000,6 +2000,7 @@ struct wined3d_caps
BOOL shader_double_precision;
BOOL viewport_array_index_any_shader;
BOOL stencil_export;
enum wined3d_feature_level max_feature_level;
};