summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiancarlo Razzolini2017-05-23 09:24:56 -0300
committerGiancarlo Razzolini2017-05-23 09:24:56 -0300
commit8e32cf3ad58260f8663efc5d54507a3428a5b266 (patch)
treefa63a4a5c59f986521b2187c09204c53ec2013fe
parent843abf966c48552f8f8f3dc6f4f3af9fd455b18d (diff)
downloadaur-8e32cf3ad58260f8663efc5d54507a3428a5b266.tar.gz
Updated to version 2.6 of the patch.
-rw-r--r--.SRCINFO26
-rw-r--r--PKGBUILD10
-rw-r--r--patch-2.6-ivb.patch (renamed from patch-2.1-ivb.patch)130
3 files changed, 72 insertions, 94 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d2b0b802a7b7..a8a35e8910b0 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,6 @@
-# Generated by mksrcinfo v8
-# Wed Feb 8 03:31:05 UTC 2017
pkgbase = wine-ivb
pkgdesc = A compatibility layer for running Windows programs: indexed vertex blending - https://bugs.winehq.org/show_bug.cgi?id=39057
- pkgver = 2.1
+ pkgver = 2.6
pkgrel = 1
url = http://www.winehq.com
arch = i686
@@ -120,32 +118,34 @@ pkgbase = wine-ivb
optdepends = cups
optdepends = samba
optdepends = dosbox
- provides = bin32-wine=2.1
- provides = wine=2.1
- provides = wine-wow64=2.1
+ provides = bin32-wine=2.6
+ provides = wine=2.6
+ provides = wine-wow64=2.6
conflicts = bin32-wine
conflicts = wine
conflicts = wine-wow64
replaces = bin32-wine
replaces = wine
options = staticlibs
- source = wine-ivb-2.1.tar.xz::https://dl.winehq.org/wine/source/2.x/wine-2.1.tar.xz
- source = wine-ivb-2.1.tar.xz.sign::https://dl.winehq.org/wine/source/2.x/wine-2.1.tar.xz.sign
+ source = wine-ivb-2.6.tar.xz::https://dl.winehq.org/wine/source/2.x/wine-2.6.tar.xz
+ source = wine-ivb-2.6.tar.xz.sign::https://dl.winehq.org/wine/source/2.x/wine-2.6.tar.xz.sign
source = 30-win32-aliases.conf
source = 0001-winhlp32-Workaround-a-bug-in-Flex.patch
- source = patch-2.1-ivb.patch
+ source = patch-2.6-ivb.patch
source = patch_temp_constants.patch
- sha1sums = 6b84f820c36a2d9313b840bd06f8c519a013a68e
+ validpgpkeys = 5AC1A08B03BD7A313E0A955AF5E6E9EEB9461DD7
+ validpgpkeys = DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D
+ sha1sums = 76ce349e2809b30fae989616d5d9a7f155e1cc79
sha1sums = SKIP
sha1sums = 023a5c901c6a091c56e76b6a62d141d87cce9fdb
sha1sums = 6ab256347d41e63694528db9e093c0abe8ca4bc1
- sha1sums = 561603ff0044a2d9e13b531562e7a31f316b2c86
+ sha1sums = 792e97592b3a391b985c4990a966ee826bef53ab
sha1sums = 3f94ad1c60213eac5d7e68c959423d0f18ed0b5f
- sha512sums = 03d678ee6e89c2804813f2827255fcf59e96ca9a45b7d8ac441cfc84f835e5e5689c70a79a41a04c631e1add7807fa4a5758acef3bd7aadfb2e92e68958c6ef6
+ sha512sums = 2aa55413ac090e011725566d004e42ee46323cd4c6961b9faa63e3de422ba60bb657bf224a4d7e8aa712a8e26e11977d07acb7c088ffeef8c37310e8cc698970
sha512sums = SKIP
sha512sums = 6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb
sha512sums = a6c099fced12271f6ba14f3f93b322f50bc2ecf5cb0b8b7ed0cc1884269569fdd084fe8531dff8db71484f80e62cbd5b69a1a2d04100e9d7485de5b53b9a4bb5
- sha512sums = 40f2e87d26133ad3b5baa98fc9394314e28b28ece09822bd337e56290c392860916b4fc3f36b102b7bc038cfe149419d5d4bc8a1944f98349566bc96c58d77ed
+ sha512sums = 3caf6fb7ad80f2b6cf6eba16570ac68a07cd8e5bed4af59c21e7509301014a76d27d714fd148f35cb04b085236469f08d7df4ab7e9d82173879c91dab2cbfb2b
sha512sums = 54e7927ea07137f2383734f65147ae18366a65a17c1970af06b13d5597f501ade3b2b435311bfae1759070895473f09382d75676e8b774c52ce540bc06cf5461
pkgname = wine-ivb
diff --git a/PKGBUILD b/PKGBUILD
index 974f543739fc..ebfc4753ea16 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@
_basename=wine
pkgname=wine-ivb
-pkgver=2.1
+pkgver=2.6
pkgrel=1
_pkgbasever=${pkgver/rc/-rc}
@@ -18,17 +18,17 @@ source=(${pkgname}-${pkgver}.tar.xz::https://dl.winehq.org/wine/source/2.x/$_bas
0001-winhlp32-Workaround-a-bug-in-Flex.patch
patch-$pkgver-ivb.patch
patch_temp_constants.patch)
-sha1sums=('6b84f820c36a2d9313b840bd06f8c519a013a68e'
+sha1sums=('76ce349e2809b30fae989616d5d9a7f155e1cc79'
'SKIP'
'023a5c901c6a091c56e76b6a62d141d87cce9fdb'
'6ab256347d41e63694528db9e093c0abe8ca4bc1'
- '561603ff0044a2d9e13b531562e7a31f316b2c86'
+ '792e97592b3a391b985c4990a966ee826bef53ab'
'3f94ad1c60213eac5d7e68c959423d0f18ed0b5f')
-sha512sums=('03d678ee6e89c2804813f2827255fcf59e96ca9a45b7d8ac441cfc84f835e5e5689c70a79a41a04c631e1add7807fa4a5758acef3bd7aadfb2e92e68958c6ef6'
+sha512sums=('2aa55413ac090e011725566d004e42ee46323cd4c6961b9faa63e3de422ba60bb657bf224a4d7e8aa712a8e26e11977d07acb7c088ffeef8c37310e8cc698970'
'SKIP'
'6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb'
'a6c099fced12271f6ba14f3f93b322f50bc2ecf5cb0b8b7ed0cc1884269569fdd084fe8531dff8db71484f80e62cbd5b69a1a2d04100e9d7485de5b53b9a4bb5'
- '40f2e87d26133ad3b5baa98fc9394314e28b28ece09822bd337e56290c392860916b4fc3f36b102b7bc038cfe149419d5d4bc8a1944f98349566bc96c58d77ed'
+ '3caf6fb7ad80f2b6cf6eba16570ac68a07cd8e5bed4af59c21e7509301014a76d27d714fd148f35cb04b085236469f08d7df4ab7e9d82173879c91dab2cbfb2b'
'54e7927ea07137f2383734f65147ae18366a65a17c1970af06b13d5597f501ade3b2b435311bfae1759070895473f09382d75676e8b774c52ce540bc06cf5461')
validpgpkeys=(5AC1A08B03BD7A313E0A955AF5E6E9EEB9461DD7
DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D)
diff --git a/patch-2.1-ivb.patch b/patch-2.6-ivb.patch
index ff803c7dc0d5..d0c6a4c844f1 100644
--- a/patch-2.1-ivb.patch
+++ b/patch-2.6-ivb.patch
@@ -1,30 +1,8 @@
-From 7ede75d32527c040005de624c4c946433ede2812 Mon Sep 17 00:00:00 2001
-From: Paul Gofman <gofmanp@gmail.com>
-Date: Thu, 19 Nov 2015 13:20:35 +0300
-Subject: [PATCH] wined3d: Indexed Vertex Blending support d3d9/tests: Indexed
- Vertex Blending test
-
-Fixes https://bugs.winehq.org/show_bug.cgi?id=39057
-
-Signed-off-by: Paul Gofman <gofmanp@gmail.com>
----
- dlls/d3d9/tests/visual.c | 258 +++++++++++++++++++++++
- dlls/wined3d/context.c | 2 +
- dlls/wined3d/cs.c | 3 +-
- dlls/wined3d/device.c | 6 +-
- dlls/wined3d/directx.c | 1 +
- dlls/wined3d/glsl_shader.c | 429 +++++++++++++++++++++++++++++++++++++--
- dlls/wined3d/state.c | 3 +-
- dlls/wined3d/utils.c | 3 +
- dlls/wined3d/vertexdeclaration.c | 10 +
- dlls/wined3d/wined3d_private.h | 8 +-
- 10 files changed, 702 insertions(+), 21 deletions(-)
-
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
-index 601461f..ae3cfc8 100644
+index f8860b7..2547b02 100644
--- a/dlls/d3d9/tests/visual.c
+++ b/dlls/d3d9/tests/visual.c
-@@ -19571,6 +19571,263 @@ done:
+@@ -19680,6 +19680,263 @@ done:
DestroyWindow(window);
}
@@ -287,8 +265,8 @@ index 601461f..ae3cfc8 100644
+
static void test_updatetexture(void)
{
- IDirect3DDevice9 *device;
-@@ -22454,6 +22711,7 @@ START_TEST(visual)
+ BOOL r32f_supported, ati2n_supported, do_visual_test;
+@@ -22717,6 +22974,7 @@ START_TEST(visual)
test_multisample_mismatch();
test_texcoordindex();
test_vertex_blending();
@@ -297,10 +275,10 @@ index 601461f..ae3cfc8 100644
test_depthbias();
test_flip();
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
-index c141d70..8d37d6a 100644
+index 4d1c2a8..0ef947e 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
-@@ -3538,6 +3538,8 @@ BOOL context_apply_draw_state(struct wined3d_context *context,
+@@ -3685,6 +3685,8 @@ BOOL context_apply_draw_state(struct wined3d_context *context,
{
device->shader_backend->shader_load_constants(device->shader_priv, context, state);
context->constant_update_mask = 0;
@@ -310,10 +288,10 @@ index c141d70..8d37d6a 100644
if (context->update_shader_resource_bindings)
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
-index 220ddee..c184008 100644
+index 43352eb..d5974a2 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
-@@ -1198,7 +1198,8 @@ static void wined3d_cs_exec_set_transform(struct wined3d_cs *cs, const void *dat
+@@ -1409,7 +1409,8 @@ static void wined3d_cs_exec_set_transform(struct wined3d_cs *cs, const void *dat
const struct wined3d_cs_set_transform *op = data;
cs->state.transforms[op->state] = op->matrix;
@@ -324,10 +302,10 @@ index 220ddee..c184008 100644
}
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
-index 0e969be..08953e3 100644
+index 7e90be5..8a7f294 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
-@@ -3312,10 +3312,14 @@ struct wined3d_texture * CDECL wined3d_device_get_texture(const struct wined3d_d
+@@ -3290,10 +3290,14 @@ struct wined3d_texture * CDECL wined3d_device_get_texture(const struct wined3d_d
HRESULT CDECL wined3d_device_get_device_caps(const struct wined3d_device *device, WINED3DCAPS *caps)
{
@@ -344,10 +322,10 @@ index 0e969be..08953e3 100644
HRESULT CDECL wined3d_device_get_display_mode(const struct wined3d_device *device, UINT swapchain_idx,
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
-index c47052c..427139d 100644
+index b5a8e47..f8e7f29 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
-@@ -4022,6 +4022,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, DWORD
+@@ -4189,6 +4189,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
adapter->d3d_info.ffp_generic_attributes = vertex_caps.ffp_generic_attributes;
adapter->d3d_info.limits.ffp_vertex_blend_matrices = vertex_caps.max_vertex_blend_matrices;
adapter->d3d_info.limits.active_light_count = vertex_caps.max_active_lights;
@@ -356,10 +334,10 @@ index c47052c..427139d 100644
adapter->fragment_pipe->get_caps(gl_info, &fragment_caps);
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
-index 2df308e..b2bfd14 100644
+index 1451116..3def3cc 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
-@@ -129,6 +129,10 @@ struct shader_glsl_priv {
+@@ -131,6 +131,10 @@ struct shader_glsl_priv
struct wine_rb_tree ffp_fragment_shaders;
BOOL ffp_proj_control;
BOOL legacy_lighting;
@@ -370,7 +348,7 @@ index 2df308e..b2bfd14 100644
};
struct glsl_vs_program
-@@ -141,7 +145,8 @@ struct glsl_vs_program
+@@ -143,7 +147,8 @@ struct glsl_vs_program
GLint uniform_b_locations[WINED3D_MAX_CONSTS_B];
GLint pos_fixup_location;
@@ -380,7 +358,7 @@ index 2df308e..b2bfd14 100644
GLint projection_matrix_location;
GLint normal_matrix_location;
GLint texture_matrix_location[MAX_TEXTURES];
-@@ -1472,18 +1477,47 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
+@@ -1745,18 +1750,47 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
shader_glsl_ffp_vertex_normalmatrix_uniform(context, state, prog);
}
@@ -434,7 +412,7 @@ index 2df308e..b2bfd14 100644
}
}
-@@ -6926,8 +6960,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
+@@ -7838,8 +7872,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
{
{"vec4", "ffp_attrib_position"}, /* WINED3D_FFP_POSITION */
{"vec4", "ffp_attrib_blendweight"}, /* WINED3D_FFP_BLENDWEIGHT */
@@ -444,15 +422,15 @@ index 2df308e..b2bfd14 100644
{"vec3", "ffp_attrib_normal"}, /* WINED3D_FFP_NORMAL */
{"float", "ffp_attrib_psize"}, /* WINED3D_FFP_PSIZE */
{"vec4", "ffp_attrib_diffuse"}, /* WINED3D_FFP_DIFFUSE */
-@@ -6939,10 +6972,15 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
+@@ -7851,10 +7884,15 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
+ BOOL legacy_lighting = priv->legacy_lighting;
+ GLuint shader_obj;
unsigned int i;
- BOOL legacy_context = gl_info->supported[WINED3D_GL_LEGACY_CONTEXT];
- BOOL output_legacy_fogcoord = legacy_context;
+ BOOL use_ubo;
string_buffer_clear(buffer);
- shader_addline(buffer, "%s\n", shader_glsl_get_version_declaration(gl_info, NULL));
+ shader_glsl_add_version_declaration(buffer, gl_info, NULL);
+ use_ubo = settings->vertexblends > 0 && settings->vb_indices && priv->ivb_use_ubo;
+ TRACE("settings->vb_indices: %d, use_ubo: %d\n",settings->vb_indices, use_ubo);
+ if (use_ubo)
@@ -460,7 +438,7 @@ index 2df308e..b2bfd14 100644
if (shader_glsl_use_explicit_attrib_location(gl_info))
shader_addline(buffer, "#extension GL_ARB_explicit_attrib_location : enable\n");
-@@ -6957,7 +6995,16 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
+@@ -7869,7 +7907,16 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
}
shader_addline(buffer, "\n");
@@ -478,7 +456,7 @@ index 2df308e..b2bfd14 100644
shader_addline(buffer, "uniform mat4 ffp_projection_matrix;\n");
shader_addline(buffer, "uniform mat3 ffp_normal_matrix;\n");
shader_addline(buffer, "uniform mat4 ffp_texture_matrix[%u];\n", MAX_TEXTURES);
-@@ -7019,6 +7066,8 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
+@@ -7931,6 +7978,8 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
shader_addline(buffer, "\nvoid main()\n{\n");
shader_addline(buffer, "float m;\n");
shader_addline(buffer, "vec3 r;\n");
@@ -487,7 +465,7 @@ index 2df308e..b2bfd14 100644
for (i = 0; i < ARRAY_SIZE(attrib_info); ++i)
{
-@@ -7047,9 +7096,27 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
+@@ -7959,9 +8008,27 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
for (i = 0; i < settings->vertexblends; ++i)
shader_addline(buffer, "ffp_attrib_blendweight[%u] -= ffp_attrib_blendweight[%u];\n", settings->vertexblends, i);
@@ -518,7 +496,7 @@ index 2df308e..b2bfd14 100644
shader_addline(buffer, "gl_Position = ffp_projection_matrix * ec_pos;\n");
if (settings->clipping)
-@@ -7073,7 +7140,23 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
+@@ -7985,7 +8052,23 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
else
{
for (i = 0; i < settings->vertexblends + 1; ++i)
@@ -543,7 +521,7 @@ index 2df308e..b2bfd14 100644
}
if (settings->normalize)
-@@ -7928,11 +8011,36 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info *
+@@ -8858,11 +8941,36 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info *
vs->pos_fixup_location = GL_EXTCALL(glGetUniformLocation(program_id, "pos_fixup"));
@@ -581,7 +559,7 @@ index 2df308e..b2bfd14 100644
vs->projection_matrix_location = GL_EXTCALL(glGetUniformLocation(program_id, "ffp_projection_matrix"));
vs->normal_matrix_location = GL_EXTCALL(glGetUniformLocation(program_id, "ffp_normal_matrix"));
for (i = 0; i < MAX_TEXTURES; ++i)
-@@ -8356,7 +8464,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
+@@ -9395,7 +9503,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
entry->constant_update_mask |= WINED3D_SHADER_CONST_FFP_MODELVIEW
| WINED3D_SHADER_CONST_FFP_PROJ;
@@ -590,7 +568,7 @@ index 2df308e..b2bfd14 100644
{
if (entry->vs.modelview_matrix_location[i] != -1)
{
-@@ -8365,6 +8473,9 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
+@@ -9404,6 +9512,9 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
}
}
@@ -600,7 +578,7 @@ index 2df308e..b2bfd14 100644
for (i = 0; i < MAX_TEXTURES; ++i)
{
if (entry->vs.texture_matrix_location[i] != -1)
-@@ -8493,7 +8604,12 @@ static void shader_glsl_select(void *shader_priv, struct wined3d_context *contex
+@@ -9538,7 +9649,12 @@ static void shader_glsl_select(void *shader_priv, struct wined3d_context *contex
checkGLcall("glUseProgram");
if (program_id)
@@ -611,9 +589,9 @@ index 2df308e..b2bfd14 100644
+ context->blend_mat_update_mask[i] = 0xFFFFFFFF;
+ }
}
- }
-@@ -8765,6 +8881,8 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win
+ context->shader_update_mask |= (1u << WINED3D_SHADER_TYPE_COMPUTE);
+@@ -9860,6 +9976,8 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win
fragment_pipe->get_caps(gl_info, &fragment_caps);
priv->ffp_proj_control = fragment_caps.wined3d_caps & WINED3D_FRAGMENT_CAP_PROJ_CONTROL;
priv->legacy_lighting = device->wined3d->flags & WINED3D_LEGACY_FFP_LIGHTING;
@@ -622,7 +600,7 @@ index 2df308e..b2bfd14 100644
device->vertex_priv = vertex_priv;
device->fragment_priv = fragment_priv;
-@@ -8796,6 +8914,12 @@ static void shader_glsl_free(struct wined3d_device *device)
+@@ -9891,6 +10009,12 @@ static void shader_glsl_free(struct wined3d_device *device)
string_buffer_free(&priv->shader_buffer);
priv->fragment_pipe->free_private(device);
priv->vertex_pipe->vp_free(device);
@@ -635,7 +613,7 @@ index 2df308e..b2bfd14 100644
HeapFree(GetProcessHeap(), 0, device->shader_priv);
device->shader_priv = NULL;
-@@ -9184,7 +9308,11 @@ static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_gl_info *gl_info,
+@@ -10299,7 +10423,11 @@ static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_gl_info *gl_info,
caps->ffp_generic_attributes = TRUE;
caps->max_active_lights = MAX_ACTIVE_LIGHTS;
caps->max_vertex_blend_matrices = MAX_VERTEX_BLENDS;
@@ -648,7 +626,7 @@ index 2df308e..b2bfd14 100644
caps->vertex_processing_caps = WINED3DVTXPCAPS_TEXGEN
| WINED3DVTXPCAPS_MATERIALSOURCE7
| WINED3DVTXPCAPS_VERTEXFOG
-@@ -9349,23 +9477,38 @@ static void glsl_vertex_pipe_pixel_shader(struct wined3d_context *context,
+@@ -10464,23 +10592,38 @@ static void glsl_vertex_pipe_pixel_shader(struct wined3d_context *context,
static void glsl_vertex_pipe_world(struct wined3d_context *context,
const struct wined3d_state *state, DWORD state_id)
{
@@ -685,9 +663,9 @@ index 2df308e..b2bfd14 100644
+ context->blend_mat_update_mask[i] = 0xFFFFFFFF;
+ priv->ubo_blend_mat_need_update = TRUE;
- if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
+ if (needs_legacy_glsl_syntax(gl_info))
{
-@@ -9585,6 +9728,258 @@ static const struct StateEntryTemplate glsl_vertex_pipe_vp_states[] =
+@@ -10700,6 +10843,258 @@ static const struct StateEntryTemplate glsl_vertex_pipe_vp_states[] =
{STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(1)), {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(1)), glsl_vertex_pipe_vertexblend }, WINED3D_GL_EXT_NONE },
{STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(2)), {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(2)), glsl_vertex_pipe_vertexblend }, WINED3D_GL_EXT_NONE },
{STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(3)), {STATE_TRANSFORM(WINED3D_TS_WORLD_MATRIX(3)), glsl_vertex_pipe_vertexblend }, WINED3D_GL_EXT_NONE },
@@ -947,10 +925,10 @@ index 2df308e..b2bfd14 100644
{STATE_TEXTURESTAGE(1, WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS), {STATE_TEXTURESTAGE(1, WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS), glsl_vertex_pipe_texmatrix}, WINED3D_GL_EXT_NONE },
{STATE_TEXTURESTAGE(2, WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS), {STATE_TEXTURESTAGE(2, WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS), glsl_vertex_pipe_texmatrix}, WINED3D_GL_EXT_NONE },
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
-index 4b21c57..13bc655 100644
+index 2c47ce6..ae15c27 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
-@@ -5922,7 +5922,8 @@ static void prune_invalid_states(struct StateEntry *state_table, const struct wi
+@@ -5950,7 +5950,8 @@ static void prune_invalid_states(struct StateEntry *state_table, const struct wi
state_table[i].apply = state_undefined;
}
@@ -961,10 +939,10 @@ index 4b21c57..13bc655 100644
for (i = start; i <= last; ++i)
{
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
-index c40a339..3536277 100644
+index 0eacc82..a90a3b0 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
-@@ -5782,6 +5782,9 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context,
+@@ -5783,6 +5783,9 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context,
settings->flatshading = FALSE;
settings->swizzle_map = si->swizzle_map;
@@ -975,7 +953,7 @@ index c40a339..3536277 100644
int wined3d_ffp_vertex_program_key_compare(const void *key, const struct wine_rb_entry *entry)
diff --git a/dlls/wined3d/vertexdeclaration.c b/dlls/wined3d/vertexdeclaration.c
-index 61c82d3..e86bee4 100644
+index 4fa6d54..65cdd3b 100644
--- a/dlls/wined3d/vertexdeclaration.c
+++ b/dlls/wined3d/vertexdeclaration.c
@@ -119,6 +119,16 @@ static BOOL declaration_element_valid_ffp(const struct wined3d_vertex_element *e
@@ -996,11 +974,19 @@ index 61c82d3..e86bee4 100644
switch(element->format)
{
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
-index 7209ce8..df649a3 100644
+index 9e48b49..a71ee87 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
-@@ -187,6 +187,9 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup
- #define MAX_UNORDERED_ACCESS_VIEWS 8
+@@ -164,6 +164,7 @@ struct wined3d_d3d_limits
+ unsigned int ffp_blend_stages;
+ unsigned int ffp_vertex_blend_matrices;
+ unsigned int active_light_count;
++ unsigned int ffp_max_vertex_blend_matrix_index;
+ };
+
+ typedef void (WINE_GLAPI *wined3d_ffp_attrib_func)(const void *data);
+@@ -272,6 +273,9 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup
+ #define MAX_TGSM_REGISTERS 8192
#define MAX_VERTEX_BLENDS 4
#define MAX_MULTISAMPLE_TYPES 8
+#define MAX_VERTEX_BLEND_IND_UBO 255
@@ -1009,7 +995,7 @@ index 7209ce8..df649a3 100644
struct min_lookup
{
-@@ -1572,6 +1575,7 @@ struct wined3d_context
+@@ -1726,6 +1730,7 @@ struct wined3d_context
DWORD last_swizzle_map; /* MAX_ATTRIBS, 16 */
DWORD shader_update_mask;
DWORD constant_update_mask;
@@ -1017,15 +1003,7 @@ index 7209ce8..df649a3 100644
DWORD numbered_array_mask;
GLenum tracking_parm; /* Which source is tracking current colour */
GLenum untracked_materials[2];
-@@ -2226,6 +2230,7 @@ struct wined3d_d3d_limits
- UINT ffp_blend_stages;
- UINT ffp_vertex_blend_matrices;
- unsigned int active_light_count;
-+ UINT ffp_max_vertex_blend_matrix_index;
- };
-
- typedef void (WINE_GLAPI *wined3d_ffp_attrib_func)(const void *data);
-@@ -2412,7 +2417,8 @@ struct wined3d_ffp_vs_settings
+@@ -2534,7 +2539,8 @@ struct wined3d_ffp_vs_settings
DWORD ortho_fog : 1;
DWORD flatshading : 1;
DWORD swizzle_map : 16; /* MAX_ATTRIBS, 16 */