Commit def13f3f authored by Józef Kucia's avatar Józef Kucia Committed by Alexandre Julliard

wined3d: Expose double precision shader capability in WINED3DCAPS.

None of shader backends supports double precision yet. Signed-off-by: 's avatarJózef Kucia <jkucia@codeweavers.com> Signed-off-by: 's avatarHenri Verbeet <hverbeet@codeweavers.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent 9d0fb202
......@@ -4029,6 +4029,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, DWORD
adapter->d3d_info.limits.vs_uniform_count = shader_caps.vs_uniform_count;
adapter->d3d_info.limits.ps_uniform_count = shader_caps.ps_uniform_count;
adapter->d3d_info.limits.varying_count = shader_caps.varying_count;
adapter->d3d_info.shader_double_precision = shader_caps.wined3d_caps & WINED3D_SHADER_CAP_DOUBLE_PRECISION;
adapter->vertex_pipe->vp_get_caps(gl_info, &vertex_caps);
adapter->d3d_info.xyzrhw = vertex_caps.xyzrhw;
......@@ -5331,11 +5332,12 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
enum wined3d_device_type device_type, WINED3DCAPS *caps)
{
const struct wined3d_adapter *adapter = &wined3d->adapters[adapter_idx];
const struct wined3d_d3d_info *d3d_info = &adapter->d3d_info;
const struct wined3d_gl_info *gl_info = &adapter->gl_info;
struct shader_caps shader_caps;
struct fragment_caps fragment_caps;
struct wined3d_vertex_caps vertex_caps;
DWORD ckey_caps, blit_caps, fx_caps;
struct fragment_caps fragment_caps;
struct shader_caps shader_caps;
TRACE("wined3d %p, adapter_idx %u, device_type %s, caps %p.\n",
wined3d, adapter_idx, debug_d3ddevicetype(device_type), caps);
......@@ -5903,6 +5905,8 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
caps->ddraw_caps.caps |= WINEDDCAPS_3D;
}
caps->shader_double_precision = d3d_info->shader_double_precision;
return WINED3D_OK;
}
......
......@@ -1097,6 +1097,7 @@ typedef void (*SHADER_HANDLER)(const struct wined3d_shader_instruction *);
#define WINED3D_SHADER_CAP_VS_CLIPPING 0x00000001
#define WINED3D_SHADER_CAP_SRGB_WRITE 0x00000002
#define WINED3D_SHADER_CAP_DOUBLE_PRECISION 0x00000004
struct shader_caps
{
......@@ -2299,6 +2300,7 @@ struct wined3d_d3d_info
BOOL shader_color_key;
DWORD valid_rt_mask;
DWORD wined3d_creation_flags;
BOOL shader_double_precision;
};
/* The adapter structure */
......
......@@ -1888,6 +1888,8 @@ typedef struct _WINED3DCAPS
DWORD Reserved3;
struct wined3d_ddraw_caps ddraw_caps;
BOOL shader_double_precision;
} WINED3DCAPS;
struct wined3d_color_key
......
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