Stefan Dösinger : wined3d: Don' t reserve clipping constants needlessly.
Alexandre Julliard
julliard at winehq.org
Thu Oct 8 08:57:12 CDT 2009
Module: wine
Branch: master
Commit: 8a68f418dbea0967003818e5bbac10e5ffc22512
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8a68f418dbea0967003818e5bbac10e5ffc22512
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Tue Oct 6 20:59:44 2009 +0200
wined3d: Don't reserve clipping constants needlessly.
---
dlls/wined3d/arb_program_shader.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 691792d..39bd0b5 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -648,8 +648,15 @@ static DWORD shader_generate_arb_declarations(IWineD3DBaseShader *iface, const s
if(reg_maps->constf[idx] & (1 << shift)) highest_constf = i;
}
- clip_limit = GL_LIMITS(clipplanes);
- if(ctx->target_version == ARB) clip_limit = min(clip_limit, 4);
+ if(use_nv_clip(gl_info) && ctx->target_version >= NV2)
+ {
+ clip_limit = GL_LIMITS(clipplanes);
+ }
+ else
+ {
+ unsigned int mask = ctx->cur_vs_args->boolclip.clipplane_mask;
+ clip_limit = min(count_bits(mask), 4);
+ }
*num_clipplanes = min(clip_limit, max_constantsF - highest_constf - 1);
max_constantsF -= *num_clipplanes;
if(*num_clipplanes < clip_limit)
More information about the wine-cvs
mailing list