d3d11: Report support for shader stencil export if available.
This commit is contained in:
parent
5efd4b64f6
commit
775812ab11
6 changed files with 15 additions and 1 deletions
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue