Commit 775812ab authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

d3d11: Report support for shader stencil export if available.

parent 5efd4b64
......@@ -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;
......
......@@ -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];
......
......@@ -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;
......
......@@ -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;
......
......@@ -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;
......
......@@ -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;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment