wined3d: Use ARB constant limits in ARB.

This commit is contained in:
Stefan Dösinger 2009-10-07 21:41:59 +02:00 committed by Alexandre Julliard
parent 435646550b
commit 122ed40c2b
1 changed files with 9 additions and 9 deletions

View File

@ -84,10 +84,10 @@ static inline BOOL ffp_clip_emul(IWineD3DStateBlockImpl *stateblock)
return stateblock->lowest_disabled_stage < 7; return stateblock->lowest_disabled_stage < 7;
} }
/* Internally used shader constants. Applications can use constants 0 to GL_LIMITS(vshader_constantsF) - 1, /* Internally used shader constants. Applications can use constants 0 to GL_LIMITS(vs_arb_constantsF) - 1,
* so upload them above that * so upload them above that
*/ */
#define ARB_SHADER_PRIVCONST_BASE (GL_LIMITS(vshader_constantsF) - 1) #define ARB_SHADER_PRIVCONST_BASE (GL_LIMITS(vs_arb_constantsF) - 1)
#define ARB_SHADER_PRIVCONST_POS ARB_SHADER_PRIVCONST_BASE + 0 #define ARB_SHADER_PRIVCONST_POS ARB_SHADER_PRIVCONST_BASE + 0
/* ARB_program_shader private data */ /* ARB_program_shader private data */
@ -634,11 +634,11 @@ static DWORD shader_generate_arb_declarations(IWineD3DBaseShader *iface, const s
* and don't know which are actually used. * and don't know which are actually used.
*/ */
if(pshader) { if(pshader) {
max_constantsF = GL_LIMITS(pshader_constantsF); max_constantsF = GL_LIMITS(ps_arb_constantsF);
} else { } else {
if(This->baseShader.reg_maps.usesrelconstF) { if(This->baseShader.reg_maps.usesrelconstF) {
DWORD highest_constf = 0, clip_limit; DWORD highest_constf = 0, clip_limit;
max_constantsF = GL_LIMITS(vshader_constantsF) - reserved_vs_const(iface, gl_info); max_constantsF = GL_LIMITS(vs_arb_constantsF) - reserved_vs_const(iface, gl_info);
max_constantsF -= count_bits(This->baseShader.reg_maps.integer_constants); max_constantsF -= count_bits(This->baseShader.reg_maps.integer_constants);
for(i = 0; i < This->baseShader.limits.constant_float; i++) for(i = 0; i < This->baseShader.limits.constant_float; i++)
@ -668,7 +668,7 @@ static DWORD shader_generate_arb_declarations(IWineD3DBaseShader *iface, const s
{ {
if(ctx->target_version >= NV2) *num_clipplanes = GL_LIMITS(clipplanes); if(ctx->target_version >= NV2) *num_clipplanes = GL_LIMITS(clipplanes);
else *num_clipplanes = min(GL_LIMITS(clipplanes), 4); else *num_clipplanes = min(GL_LIMITS(clipplanes), 4);
max_constantsF = GL_LIMITS(vshader_constantsF); max_constantsF = GL_LIMITS(vs_arb_constantsF);
} }
} }
@ -4527,7 +4527,7 @@ static void shader_arb_get_caps(WINED3DDEVTYPE devtype, const struct wined3d_gl_
pCaps->VertexShaderVersion = WINED3DVS_VERSION(3,0); pCaps->VertexShaderVersion = WINED3DVS_VERSION(3,0);
TRACE_(d3d_caps)("Hardware vertex shader version 3.0 enabled (NV_VERTEX_PROGRAM3)\n"); TRACE_(d3d_caps)("Hardware vertex shader version 3.0 enabled (NV_VERTEX_PROGRAM3)\n");
} }
else if(GL_LIMITS(vshader_constantsF) >= 256) else if(GL_LIMITS(vs_arb_constantsF) >= 256)
{ {
/* Shader Model 2.0 requires at least 256 vertex shader constants */ /* Shader Model 2.0 requires at least 256 vertex shader constants */
pCaps->VertexShaderVersion = WINED3DVS_VERSION(2,0); pCaps->VertexShaderVersion = WINED3DVS_VERSION(2,0);
@ -4538,7 +4538,7 @@ static void shader_arb_get_caps(WINED3DDEVTYPE devtype, const struct wined3d_gl_
pCaps->VertexShaderVersion = WINED3DVS_VERSION(1,1); pCaps->VertexShaderVersion = WINED3DVS_VERSION(1,1);
TRACE_(d3d_caps)("Hardware vertex shader version 1.1 enabled (ARB_PROGRAM)\n"); TRACE_(d3d_caps)("Hardware vertex shader version 1.1 enabled (ARB_PROGRAM)\n");
} }
pCaps->MaxVertexShaderConst = GL_LIMITS(vshader_constantsF); pCaps->MaxVertexShaderConst = GL_LIMITS(vs_arb_constantsF);
} }
if(GL_SUPPORT(ARB_FRAGMENT_PROGRAM)) { if(GL_SUPPORT(ARB_FRAGMENT_PROGRAM)) {
@ -4547,7 +4547,7 @@ static void shader_arb_get_caps(WINED3DDEVTYPE devtype, const struct wined3d_gl_
pCaps->PixelShaderVersion = WINED3DPS_VERSION(3,0); pCaps->PixelShaderVersion = WINED3DPS_VERSION(3,0);
TRACE_(d3d_caps)("Hardware pixel shader version 3.0 enabled (NV_FRAGMENT_PROGRAM2)\n"); TRACE_(d3d_caps)("Hardware pixel shader version 3.0 enabled (NV_FRAGMENT_PROGRAM2)\n");
} }
else if(GL_LIMITS(pshader_constantsF) >= 32) else if(GL_LIMITS(ps_arb_constantsF) >= 32)
{ {
/* Shader Model 2.0 requires at least 32 pixel shader constants */ /* Shader Model 2.0 requires at least 32 pixel shader constants */
pCaps->PixelShaderVersion = WINED3DPS_VERSION(2,0); pCaps->PixelShaderVersion = WINED3DPS_VERSION(2,0);
@ -4559,7 +4559,7 @@ static void shader_arb_get_caps(WINED3DDEVTYPE devtype, const struct wined3d_gl_
TRACE_(d3d_caps)("Hardware pixel shader version 1.4 enabled (ARB_PROGRAM)\n"); TRACE_(d3d_caps)("Hardware pixel shader version 1.4 enabled (ARB_PROGRAM)\n");
} }
pCaps->PixelShader1xMaxValue = 8.0f; pCaps->PixelShader1xMaxValue = 8.0f;
pCaps->MaxPixelShaderConst = GL_LIMITS(pshader_constantsF); pCaps->MaxPixelShaderConst = GL_LIMITS(ps_arb_constantsF);
} }
pCaps->VSClipping = use_nv_clip(gl_info); pCaps->VSClipping = use_nv_clip(gl_info);