wined3d: Expose double precision shader capability in WINED3DCAPS.
None of shader backends supports double precision yet. Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
9d0fb20228
commit
def13f3f81
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue