From 8a7ddfbb53c2234907ac21ea89fd4f69b3cb8a67 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Fri, 14 Jun 2013 09:07:11 +0200 Subject: [PATCH] wined3d: Don't use state_colormat() with the GLSL vertex pipe. None of the code in there should be needed for the GLSL vertex pipe, and the "untracked materials" counter in particular will trigger an unnecessary fallback to drawStridedSlow(). --- dlls/wined3d/glsl_shader.c | 2 +- dlls/wined3d/state.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index ffe4d25246c..412c6019485 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -6895,7 +6895,7 @@ static const struct StateEntryTemplate glsl_vertex_pipe_vp_states[] = {STATE_RENDER(WINED3D_RS_CLIPPLANEENABLE), {STATE_RENDER(WINED3D_RS_CLIPPING), NULL }, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_LIGHTING), {STATE_VDECL, NULL }, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_AMBIENT), {STATE_RENDER(WINED3D_RS_AMBIENT), state_ambient }, WINED3D_GL_EXT_NONE }, - {STATE_RENDER(WINED3D_RS_COLORVERTEX), {STATE_VDECL, NULL }, WINED3D_GL_EXT_NONE }, + {STATE_RENDER(WINED3D_RS_COLORVERTEX), {STATE_RENDER(WINED3D_RS_COLORVERTEX), glsl_vertex_pipe_shader}, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_LOCALVIEWER), {STATE_VDECL, NULL }, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_NORMALIZENORMALS), {STATE_VDECL, NULL }, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_DIFFUSEMATERIALSOURCE), {STATE_VDECL, NULL }, WINED3D_GL_EXT_NONE }, diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 491ee915ae2..74261ec33ea 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -4574,7 +4574,7 @@ void vertexdeclaration(struct wined3d_context *context, const struct wined3d_sta && !isStateDirty(context, STATE_TRANSFORM(WINED3D_TS_VIEW))) transform_world(context, state, STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(0))); if (!isStateDirty(context, STATE_RENDER(WINED3D_RS_COLORVERTEX))) - state_colormat(context, state, STATE_RENDER(WINED3D_RS_COLORVERTEX)); + context_apply_state(context, state, STATE_RENDER(WINED3D_RS_COLORVERTEX)); if (!isStateDirty(context, STATE_RENDER(WINED3D_RS_LIGHTING))) state_lighting(context, state, STATE_RENDER(WINED3D_RS_LIGHTING));