mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
wined3d-Indexed-Vertex-Blending: Fix rebase.
This commit is contained in:
parent
4a31790533
commit
e8d98eb7ba
@ -1,4 +1,4 @@
|
||||
From f007c8f6a7fc3498d525c70a7f6e6540faf425c1 Mon Sep 17 00:00:00 2001
|
||||
From b008821675b5e7ad2ed3d4f721d7fbb05c8f8ce4 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <gofmanp@gmail.com>
|
||||
Date: Thu, 17 Aug 2017 17:46:50 +0300
|
||||
Subject: d3d9/tests: Add test for indexed vertex blending.
|
||||
@ -8,16 +8,15 @@ Subject: d3d9/tests: Add test for indexed vertex blending.
|
||||
1 file changed, 252 insertions(+)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index 4fdc41c26b..3b6215a274 100644
|
||||
index 3686fc6..9e0c33b 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -20198,6 +20198,276 @@ done:
|
||||
@@ -20263,6 +20263,257 @@ done:
|
||||
DestroyWindow(window);
|
||||
}
|
||||
|
||||
+static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char *test_id_str)
|
||||
+{
|
||||
+ IDirect3DPixelShader9 *ps;
|
||||
+ D3DCAPS9 caps;
|
||||
+ D3DCOLOR color;
|
||||
+ HRESULT hr;
|
||||
@ -34,48 +33,30 @@ index 4fdc41c26b..3b6215a274 100644
|
||||
+ {{{
|
||||
+ 1.0f, 0.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 1.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 2.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ -4.0f, 4.0f, 0.0f, 1.0f
|
||||
+ }}},
|
||||
+ lower_left =
|
||||
+ {{{
|
||||
+ 1.0f, 0.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 1.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 2.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ -4.0f, -4.0f, 0.0f, 1.0f
|
||||
+ }}},
|
||||
+ upper_right =
|
||||
+ {{{
|
||||
+ 1.0f, 0.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 1.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 2.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ 4.0f, 4.0f, 0.0f, 1.0f
|
||||
+ }}},
|
||||
+ lower_right =
|
||||
+ {{{
|
||||
+ 1.0f, 0.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 1.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 2.0f, 0.0f,
|
||||
+ 4.0f, -4.0f, 0.0f, 1.0f
|
||||
+ }}},
|
||||
+ identity =
|
||||
+ {{{
|
||||
+ 1.0f, 0.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 1.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 0.0f, 1.0f
|
||||
+ }}};
|
||||
+
|
||||
+ static const DWORD normal_ps[] =
|
||||
+ {
|
||||
+ 0xffff0200, /* ps_2_0 */
|
||||
+ 0x05000051, 0xa00f0000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000, /* def c0, 1, 0, 0, 0 */
|
||||
+ 0x0200001f, 0x80000000, 0xb0070000, /* dcl t0.xyz */
|
||||
+ 0x02000001, 0x80170000, 0xb0e40000, /* mov_sat r0.xyz, t0 */
|
||||
+ 0x02000001, 0x80080000, 0xa0000000, /* mov r0.w, c0.x */
|
||||
+ 0x02000001, 0x800f0800, 0x80e40000, /* mov oC0, r0 */
|
||||
+ 0x0000ffff, /* end */
|
||||
+ };
|
||||
+ 4.0f, -4.0f, 0.0f, 1.0f
|
||||
+ }}};
|
||||
+
|
||||
+ static const POINT quad_upper_right_points[] =
|
||||
+ {
|
||||
@ -288,7 +269,7 @@ index 4fdc41c26b..3b6215a274 100644
|
||||
static void test_updatetexture(void)
|
||||
{
|
||||
BOOL r32f_supported, ati2n_supported, do_visual_test;
|
||||
@@ -23864,6 +24134,7 @@ START_TEST(visual)
|
||||
@@ -23930,6 +24181,7 @@ START_TEST(visual)
|
||||
test_multisample_mismatch();
|
||||
test_texcoordindex();
|
||||
test_vertex_blending();
|
||||
@ -297,5 +278,5 @@ index 4fdc41c26b..3b6215a274 100644
|
||||
test_depthbias();
|
||||
test_flip();
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0b8b0f04a03d358ee4560502568a695641368812 Mon Sep 17 00:00:00 2001
|
||||
From 67cb3d1151bf787bb66d54e4fa4e06dc6b5cb0ac Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <gofmanp@gmail.com>
|
||||
Date: Sat, 26 Aug 2017 00:59:29 +0200
|
||||
Subject: wined3d: Implement hardware indexed vertex blending with 9 matrices.
|
||||
@ -12,10 +12,10 @@ Subject: wined3d: Implement hardware indexed vertex blending with 9 matrices.
|
||||
5 files changed, 51 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index 9b845b5ad44..3575b0be2e8 100644
|
||||
index 9e0c33b..6d05d68 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -19844,7 +19844,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
@@ -20392,7 +20392,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr);
|
||||
if (caps.MaxVertexBlendMatrixIndex < 7 || caps.MaxVertexBlendMatrices < 4)
|
||||
{
|
||||
@ -25,10 +25,10 @@ index 9b845b5ad44..3575b0be2e8 100644
|
||||
return;
|
||||
}
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index 1aa23ee33ad..3e84ad0d717 100644
|
||||
index 6cc030a..12100a5 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -144,7 +144,7 @@ struct glsl_vs_program
|
||||
@@ -143,7 +143,7 @@ struct glsl_vs_program
|
||||
GLint uniform_b_locations[WINED3D_MAX_CONSTS_B];
|
||||
GLint pos_fixup_location;
|
||||
|
||||
@ -37,7 +37,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
GLint projection_matrix_location;
|
||||
GLint normal_matrix_location;
|
||||
GLint texture_matrix_location[MAX_TEXTURES];
|
||||
@@ -1786,7 +1786,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
@@ -1818,7 +1818,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
{
|
||||
struct wined3d_matrix mat;
|
||||
|
||||
@ -46,7 +46,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
{
|
||||
if (prog->vs.modelview_matrix_location[i] == -1)
|
||||
break;
|
||||
@@ -8519,8 +8519,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8755,8 +8755,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 */
|
||||
@ -56,7 +56,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
{"vec3", "ffp_attrib_normal"}, /* WINED3D_FFP_NORMAL */
|
||||
{"float", "ffp_attrib_psize"}, /* WINED3D_FFP_PSIZE */
|
||||
{"vec4", "ffp_attrib_diffuse"}, /* WINED3D_FFP_DIFFUSE */
|
||||
@@ -8532,6 +8531,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8768,6 +8767,7 @@ 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;
|
||||
@ -64,7 +64,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
|
||||
string_buffer_clear(buffer);
|
||||
|
||||
@@ -8550,7 +8550,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8786,7 +8786,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
}
|
||||
shader_addline(buffer, "\n");
|
||||
|
||||
@ -73,7 +73,7 @@ index 1aa23ee33ad..3e84ad0d717 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);
|
||||
@@ -8642,7 +8642,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8878,7 +8878,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
|
||||
shader_addline(buffer, "vec4 ec_pos = vec4(0.0);\n");
|
||||
for (i = 0; i < settings->vertexblends + 1; ++i)
|
||||
@ -85,7 +85,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
|
||||
shader_addline(buffer, "gl_Position = ffp_projection_matrix * ec_pos;\n");
|
||||
if (settings->clipping)
|
||||
@@ -8666,7 +8669,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8902,7 +8905,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
else
|
||||
{
|
||||
for (i = 0; i < settings->vertexblends + 1; ++i)
|
||||
@ -97,7 +97,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
}
|
||||
|
||||
if (settings->normalize)
|
||||
@@ -9539,7 +9545,7 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info *
|
||||
@@ -9775,7 +9781,7 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info *
|
||||
|
||||
vs->pos_fixup_location = GL_EXTCALL(glGetUniformLocation(program_id, "pos_fixup"));
|
||||
|
||||
@ -106,7 +106,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
{
|
||||
string_buffer_sprintf(name, "ffp_modelview_matrix[%u]", i);
|
||||
vs->modelview_matrix_location[i] = GL_EXTCALL(glGetUniformLocation(program_id, name->buffer));
|
||||
@@ -10114,7 +10120,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
|
||||
@@ -10349,7 +10355,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;
|
||||
|
||||
@ -115,7 +115,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
{
|
||||
if (entry->vs.modelview_matrix_location[i] != -1)
|
||||
{
|
||||
@@ -11076,7 +11082,7 @@ static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_gl_info *gl_info,
|
||||
@@ -11321,7 +11327,7 @@ 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;
|
||||
@ -124,7 +124,7 @@ index 1aa23ee33ad..3e84ad0d717 100644
|
||||
caps->vertex_processing_caps = WINED3DVTXPCAPS_TEXGEN
|
||||
| WINED3DVTXPCAPS_MATERIALSOURCE7
|
||||
| WINED3DVTXPCAPS_VERTEXFOG
|
||||
@@ -11494,6 +11500,11 @@ static const struct StateEntryTemplate glsl_vertex_pipe_vp_states[] =
|
||||
@@ -11699,6 +11705,11 @@ 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 },
|
||||
@ -137,10 +137,10 @@ index 1aa23ee33ad..3e84ad0d717 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/utils.c b/dlls/wined3d/utils.c
|
||||
index 5e29e7cd7a5..847429511b9 100644
|
||||
index 7cb2007..60a9ee0 100644
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -5810,6 +5810,9 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context,
|
||||
@@ -5957,6 +5957,9 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context,
|
||||
break;
|
||||
}
|
||||
|
||||
@ -151,7 +151,7 @@ index 5e29e7cd7a5..847429511b9 100644
|
||||
&& state->render_states[WINED3D_RS_CLIPPLANEENABLE];
|
||||
settings->normal = !!(si->use_map & (1u << WINED3D_FFP_NORMAL));
|
||||
diff --git a/dlls/wined3d/vertexdeclaration.c b/dlls/wined3d/vertexdeclaration.c
|
||||
index 4fa6d54c37d..c6ab0ea09c9 100644
|
||||
index 3d1518d..82348b4 100644
|
||||
--- a/dlls/wined3d/vertexdeclaration.c
|
||||
+++ b/dlls/wined3d/vertexdeclaration.c
|
||||
@@ -119,6 +119,15 @@ static BOOL declaration_element_valid_ffp(const struct wined3d_vertex_element *e
|
||||
@ -171,10 +171,10 @@ index 4fa6d54c37d..c6ab0ea09c9 100644
|
||||
switch(element->format)
|
||||
{
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 2c40b2d9838..7c20934ad40 100644
|
||||
index 45a7903..64dad01 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -272,6 +272,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup
|
||||
@@ -275,6 +275,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup
|
||||
#define MAX_UNORDERED_ACCESS_VIEWS 8
|
||||
#define MAX_TGSM_REGISTERS 8192
|
||||
#define MAX_VERTEX_BLENDS 4
|
||||
@ -182,7 +182,7 @@ index 2c40b2d9838..7c20934ad40 100644
|
||||
#define MAX_MULTISAMPLE_TYPES 8
|
||||
#define MAX_RENDER_TARGETS 8
|
||||
|
||||
@@ -2723,7 +2724,8 @@ struct wined3d_ffp_vs_settings
|
||||
@@ -2741,7 +2742,8 @@ struct wined3d_ffp_vs_settings
|
||||
DWORD ortho_fog : 1;
|
||||
DWORD flatshading : 1;
|
||||
DWORD swizzle_map : 16; /* MAX_ATTRIBS, 16 */
|
||||
@ -192,7 +192,7 @@ index 2c40b2d9838..7c20934ad40 100644
|
||||
|
||||
DWORD texgen[MAX_TEXTURES];
|
||||
};
|
||||
@@ -4298,6 +4348,20 @@ static inline BOOL wined3d_format_is_typeless(const struct wined3d_format *forma
|
||||
@@ -4326,6 +4328,20 @@ static inline BOOL wined3d_format_is_typeless(const struct wined3d_format *forma
|
||||
return format->id == format->typeless_id && format->id != WINED3DFMT_UNKNOWN;
|
||||
}
|
||||
|
||||
@ -214,5 +214,5 @@ index 2c40b2d9838..7c20934ad40 100644
|
||||
{
|
||||
/* Check state->vertex_declaration to allow this to be used before the
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ca7e96f08d1a718817dcb6f0527a5348161daf82 Mon Sep 17 00:00:00 2001
|
||||
From feccefdad49772bbc87502daca1a78bbfbaaf85e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 00:23:43 +0200
|
||||
Subject: d3d9/tests: Test normal calculation when indexed vertex blending is
|
||||
@ -9,10 +9,72 @@ Subject: d3d9/tests: Test normal calculation when indexed vertex blending is
|
||||
1 file changed, 93 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index 3575b0be2e8..863a3c513de 100644
|
||||
index 6d05d68..052327c 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -19798,6 +19817,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
@@ -20265,6 +20265,7 @@ done:
|
||||
|
||||
static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char *test_id_str)
|
||||
{
|
||||
+ IDirect3DPixelShader9 *ps;
|
||||
D3DCAPS9 caps;
|
||||
D3DCOLOR color;
|
||||
HRESULT hr;
|
||||
@@ -20281,31 +20282,49 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
{{{
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
- 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 2.0f, 0.0f,
|
||||
-4.0f, 4.0f, 0.0f, 1.0f
|
||||
}}},
|
||||
lower_left =
|
||||
{{{
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
- 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 2.0f, 0.0f,
|
||||
-4.0f, -4.0f, 0.0f, 1.0f
|
||||
}}},
|
||||
upper_right =
|
||||
{{{
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
- 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 2.0f, 0.0f,
|
||||
4.0f, 4.0f, 0.0f, 1.0f
|
||||
}}},
|
||||
lower_right =
|
||||
{{{
|
||||
1.0f, 0.0f, 0.0f, 0.0f,
|
||||
0.0f, 1.0f, 0.0f, 0.0f,
|
||||
- 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 2.0f, 0.0f,
|
||||
4.0f, -4.0f, 0.0f, 1.0f
|
||||
+ }}},
|
||||
+ identity =
|
||||
+ {{{
|
||||
+ 1.0f, 0.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 1.0f, 0.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 1.0f, 0.0f,
|
||||
+ 0.0f, 0.0f, 0.0f, 1.0f
|
||||
}}};
|
||||
|
||||
+ static const DWORD normal_ps[] =
|
||||
+ {
|
||||
+ 0xffff0200, /* ps_2_0 */
|
||||
+ 0x05000051, 0xa00f0000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000, /* def c0, 1, 0, 0, 0 */
|
||||
+ 0x0200001f, 0x80000000, 0xb0070000, /* dcl t0.xyz */
|
||||
+ 0x02000001, 0x80170000, 0xb0e40000, /* mov_sat r0.xyz, t0 */
|
||||
+ 0x02000001, 0x80080000, 0xa0000000, /* mov r0.w, c0.x */
|
||||
+ 0x02000001, 0x800f0800, 0x80e40000, /* mov oC0, r0 */
|
||||
+ 0x0000ffff, /* end */
|
||||
+ };
|
||||
+
|
||||
static const POINT quad_upper_right_points[] =
|
||||
{
|
||||
{576, 48}, {-1, -1},
|
||||
@@ -20346,6 +20365,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
struct vec3 position;
|
||||
struct vec3 blendweights;
|
||||
DWORD matrixIndices;
|
||||
@ -20,7 +82,7 @@ index 3575b0be2e8..863a3c513de 100644
|
||||
}
|
||||
vertex_data[4];
|
||||
const POINT *quad_points;
|
||||
@@ -19807,34 +19827,34 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
@@ -20355,34 +20375,34 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
{
|
||||
/* upper right */
|
||||
{
|
||||
@ -71,7 +133,7 @@ index 3575b0be2e8..863a3c513de 100644
|
||||
quad_fullscreen_points, quad_fullscreen_empty_points
|
||||
}
|
||||
};
|
||||
@@ -19869,21 +19889,32 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
@@ -20417,21 +20437,32 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
ok(hr == D3D_OK, "(%s) IDirect3DDevice9_SetRenderState D3DRS_INDEXEDVERTEXBLENDENABLE failed %08x.\n",
|
||||
test_id_str, hr);
|
||||
|
||||
@ -106,7 +168,7 @@ index 3575b0be2e8..863a3c513de 100644
|
||||
ok(SUCCEEDED(hr), "Failed to draw, hr %#x.\n", hr);
|
||||
|
||||
hr = IDirect3DDevice9_EndScene(device);
|
||||
@@ -19907,7 +19938,47 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
@@ -20455,7 +20486,47 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
|
||||
hr = IDirect3DDevice9_Present(device, NULL, NULL, NULL, NULL);
|
||||
ok(SUCCEEDED(hr), "Failed to present, hr %#x.\n", hr);
|
||||
@ -155,5 +217,5 @@ index 3575b0be2e8..863a3c513de 100644
|
||||
|
||||
static void test_indexed_vertex_blending(void)
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c0e0cc096b8e0dab0b7734424816dc70dca35261 Mon Sep 17 00:00:00 2001
|
||||
From a62959a00ea79f2fff613f4a4dbc27d7cd426af0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 01:00:04 +0200
|
||||
Subject: wined3d: Fix calculation of normal when vertex blending is enabled.
|
||||
@ -9,10 +9,10 @@ Subject: wined3d: Fix calculation of normal when vertex blending is enabled.
|
||||
2 files changed, 36 insertions(+), 42 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index 863a3c513de..49d519befb5 100644
|
||||
index 052327c..1fe62fa 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -19962,7 +19962,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
@@ -20510,7 +20510,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char
|
||||
while (point->x != -1 && point->y != -1)
|
||||
{
|
||||
color = getPixelColor(device, point->x, point->y);
|
||||
@ -22,10 +22,10 @@ index 863a3c513de..49d519befb5 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
index 12100a5..bb3b1c2 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -145,8 +145,8 @@ struct glsl_vs_program
|
||||
@@ -144,8 +144,8 @@ struct glsl_vs_program
|
||||
GLint pos_fixup_location;
|
||||
|
||||
GLint modelview_matrix_location[MAX_VERTEX_INDEX_BLENDS];
|
||||
@ -69,7 +69,7 @@ index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
static void shader_glsl_ffp_vertex_texmatrix_uniform(const struct wined3d_context *context,
|
||||
const struct wined3d_state *state, unsigned int tex, struct glsl_shader_prog_link *prog)
|
||||
{
|
||||
@@ -1715,6 +1688,23 @@ static void shader_glsl_load_color_key_constant(const struct glsl_ps_program *ps
|
||||
@@ -1747,6 +1720,23 @@ static void shader_glsl_load_color_key_constant(const struct glsl_ps_program *ps
|
||||
GL_EXTCALL(glUniform4fv(ps->color_key_location, 2, &float_key[0].r));
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
/* Context activation is done by the caller (state handler). */
|
||||
static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context *context,
|
||||
const struct wined3d_state *state)
|
||||
@@ -1725,6 +1715,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
@@ -1757,6 +1747,7 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
struct shader_glsl_priv *priv = shader_priv;
|
||||
float position_fixup[4];
|
||||
@ -101,7 +101,7 @@ index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
DWORD update_mask;
|
||||
|
||||
struct glsl_shader_prog_link *prog = ctx_data->glsl_program;
|
||||
@@ -1779,7 +1770,9 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
@@ -1811,7 +1802,9 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
GL_EXTCALL(glUniformMatrix4fv(prog->vs.modelview_matrix_location[0], 1, FALSE, &mat._11));
|
||||
checkGLcall("glUniformMatrix4fv");
|
||||
|
||||
@ -112,7 +112,7 @@ index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
}
|
||||
|
||||
if (update_mask & WINED3D_SHADER_CONST_FFP_VERTEXBLEND)
|
||||
@@ -1794,6 +1787,10 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
@@ -1826,6 +1819,10 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
get_modelview_matrix(context, state, i, &mat);
|
||||
GL_EXTCALL(glUniformMatrix4fv(prog->vs.modelview_matrix_location[i], 1, FALSE, &mat._11));
|
||||
checkGLcall("glUniformMatrix4fv");
|
||||
@ -123,7 +123,7 @@ index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8551,8 +8548,8 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8787,8 +8784,8 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
shader_addline(buffer, "\n");
|
||||
|
||||
shader_addline(buffer, "uniform mat4 ffp_modelview_matrix[%u];\n", MAX_VERTEX_INDEX_BLENDS);
|
||||
@ -133,7 +133,7 @@ index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
shader_addline(buffer, "uniform mat4 ffp_texture_matrix[%u];\n", MAX_TEXTURES);
|
||||
|
||||
shader_addline(buffer, "uniform struct\n{\n");
|
||||
@@ -8662,17 +8659,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8898,17 +8895,10 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
shader_addline(buffer, "vec3 normal = vec3(0.0);\n");
|
||||
if (settings->normal)
|
||||
{
|
||||
@ -154,7 +154,7 @@ index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
}
|
||||
|
||||
if (settings->normalize)
|
||||
@@ -9550,8 +9540,12 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info *
|
||||
@@ -9786,8 +9776,12 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info *
|
||||
string_buffer_sprintf(name, "ffp_modelview_matrix[%u]", i);
|
||||
vs->modelview_matrix_location[i] = GL_EXTCALL(glGetUniformLocation(program_id, name->buffer));
|
||||
}
|
||||
@ -169,5 +169,5 @@ index 3e84ad0d717..2aa0d0db0a4 100644
|
||||
{
|
||||
string_buffer_sprintf(name, "ffp_texture_matrix[%u]", i);
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
From fadcafb0c6505447ba086d8dc4a6a024a040c61e Mon Sep 17 00:00:00 2001
|
||||
From 2c5b6d42fa11db7fb80f91a3343bb27876b697b6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 01:07:25 +0200
|
||||
Subject: wined3d: Move matrix inversion functions into utils.c
|
||||
|
||||
---
|
||||
dlls/wined3d/glsl_shader.c | 275 -----------------------------------------
|
||||
dlls/wined3d/utils.c | 275 +++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/wined3d_private.h | 2 +
|
||||
3 files changed, 277 insertions(+), 275 deletions(-)
|
||||
dlls/wined3d/glsl_shader.c | 287 -----------------------------------------
|
||||
dlls/wined3d/utils.c | 287 +++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/wined3d_private.h | 3 +
|
||||
3 files changed, 290 insertions(+), 287 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index 2aa0d0db0a4..aaca2f63441 100644
|
||||
index bb3b1c2..d53ad70 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -1236,293 +1236,6 @@ static void shader_glsl_load_np2fixup_co
|
||||
@@ -1236,293 +1236,6 @@ static void shader_glsl_load_np2fixup_constants(const struct glsl_ps_program *ps
|
||||
GL_EXTCALL(glUniform4fv(ps->np2_fixup_location, ps->np2_fixup_info->num_consts, &np2fixup_constants[0].sx));
|
||||
}
|
||||
|
||||
@ -308,10 +308,10 @@ index 2aa0d0db0a4..aaca2f63441 100644
|
||||
const struct wined3d_state *state, unsigned int tex, struct glsl_shader_prog_link *prog)
|
||||
{
|
||||
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
index 847429511b9..b2effb5c2ec 100644
|
||||
index 60a9ee0..8a07b3e 100644
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -5373,6 +5373,293 @@ void multiply_matrix(struct wined3d_matr
|
||||
@@ -5409,6 +5409,293 @@ void multiply_matrix(struct wined3d_matrix *dst, const struct wined3d_matrix *sr
|
||||
*dst = tmp;
|
||||
}
|
||||
|
||||
@ -386,7 +386,7 @@ index 847429511b9..b2effb5c2ec 100644
|
||||
+ *b = tmp;
|
||||
+}
|
||||
+
|
||||
+BOOL invert_matrix(struct wined3d_matrix *out, struct wined3d_matrix *m)
|
||||
+BOOL invert_matrix(struct wined3d_matrix *out, const struct wined3d_matrix *m)
|
||||
+{
|
||||
+ float wtmp[4][8];
|
||||
+ float m0, m1, m2, m3, s;
|
||||
@ -606,18 +606,19 @@ index 847429511b9..b2effb5c2ec 100644
|
||||
DWORD size = 0;
|
||||
int i;
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 7c20934ad40..08f4f01f7e6 100644
|
||||
index 64dad01..92a5ef1 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -3909,6 +3909,9 @@ GLenum gl_primitive_type_from_d3d(enum w
|
||||
@@ -3911,6 +3911,9 @@ GLenum gl_primitive_type_from_d3d(enum wined3d_primitive_type primitive_type) DE
|
||||
/* Math utils */
|
||||
void multiply_matrix(struct wined3d_matrix *dest, const struct wined3d_matrix *src1,
|
||||
const struct wined3d_matrix *src2) DECLSPEC_HIDDEN;
|
||||
+BOOL invert_matrix_3d(struct wined3d_matrix *out, const struct wined3d_matrix *in) DECLSPEC_HIDDEN;
|
||||
+BOOL invert_matrix(struct wined3d_matrix *out, struct wined3d_matrix *m) DECLSPEC_HIDDEN;
|
||||
+BOOL invert_matrix(struct wined3d_matrix *out, const struct wined3d_matrix *m) DECLSPEC_HIDDEN;
|
||||
+void transpose_matrix(struct wined3d_matrix *out, const struct wined3d_matrix *m) DECLSPEC_HIDDEN;
|
||||
|
||||
void wined3d_release_dc(HWND window, HDC dc) DECLSPEC_HIDDEN;
|
||||
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
From 95d106f273fb8db213048c8aa54550248943f547 Mon Sep 17 00:00:00 2001
|
||||
From 5221861c923787581dc67b8dd4d0901e0536d304 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 01:26:38 +0200
|
||||
Subject: [PATCH] wined3d: Implement software processing for indexed vertex
|
||||
blending.
|
||||
Subject: wined3d: Implement software processing for indexed vertex blending.
|
||||
|
||||
---
|
||||
dlls/wined3d/context.c | 107 +++++++++++++++++++++++++++++++++++++++--
|
||||
@ -13,10 +12,10 @@ Subject: [PATCH] wined3d: Implement software processing for indexed vertex
|
||||
5 files changed, 148 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index 67a49db..b513705 100644
|
||||
index 15981ea..c54982a 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -4496,6 +4496,100 @@ static void draw_primitive_arrays(struct wined3d_context *context, const struct
|
||||
@@ -4476,6 +4476,101 @@ static void draw_primitive_arrays(struct wined3d_context *context, const struct
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,6 +70,7 @@ index 67a49db..b513705 100644
|
||||
+ case WINED3D_FFP_EMIT_FLOAT4: vector[3] = data[3];
|
||||
+ case WINED3D_FFP_EMIT_FLOAT3: vector[2] = data[2];
|
||||
+ case WINED3D_FFP_EMIT_FLOAT2: vector[1] = data[1];
|
||||
+ case WINED3D_FFP_EMIT_FLOAT1: vector[0] = data[0]; break;
|
||||
+ default:
|
||||
+ FIXME("unsupported value format: %u\n", SI_FORMAT(element_idx));
|
||||
+ return (BYTE *)data;
|
||||
@ -117,7 +117,7 @@ index 67a49db..b513705 100644
|
||||
static unsigned int get_stride_idx(const void *idx_data, unsigned int idx_size,
|
||||
unsigned int base_vertex_idx, unsigned int start_idx, unsigned int vertex_idx)
|
||||
{
|
||||
@@ -4524,6 +4618,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context *context, const
|
||||
@@ -4504,6 +4599,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context *context, const
|
||||
BOOL specular_fog = FALSE;
|
||||
BOOL ps = use_ps(state);
|
||||
const void *ptr;
|
||||
@ -125,7 +125,7 @@ index 67a49db..b513705 100644
|
||||
|
||||
static unsigned int once;
|
||||
|
||||
@@ -4560,7 +4655,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context *context, const
|
||||
@@ -4540,7 +4636,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context *context, const
|
||||
if (!(use_map & 1u << element_idx))
|
||||
continue;
|
||||
|
||||
@ -134,7 +134,7 @@ index 67a49db..b513705 100644
|
||||
ops->generic[si->elements[element_idx].format->emit_idx](element_idx, ptr);
|
||||
}
|
||||
}
|
||||
@@ -4672,7 +4767,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context *context, const
|
||||
@@ -4652,7 +4748,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context *context, const
|
||||
|
||||
if (normal)
|
||||
{
|
||||
@ -143,7 +143,7 @@ index 67a49db..b513705 100644
|
||||
ops->normal[si->elements[WINED3D_FFP_NORMAL].format->emit_idx](ptr);
|
||||
}
|
||||
|
||||
@@ -4717,7 +4812,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context *context, const
|
||||
@@ -4697,7 +4793,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context *context, const
|
||||
|
||||
if (position)
|
||||
{
|
||||
@ -152,24 +152,23 @@ index 67a49db..b513705 100644
|
||||
ops->position[si->elements[WINED3D_FFP_POSITION].format->emit_idx](ptr);
|
||||
}
|
||||
}
|
||||
@@ -4939,6 +5034,12 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
|
||||
@@ -4919,6 +5015,11 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
|
||||
WARN_(d3d_perf)("Using software emulation because manual fog coordinates are provided.\n");
|
||||
emulation = TRUE;
|
||||
}
|
||||
+ else if (use_indexed_vertex_blending(state, stream_info) && use_software_vertex_processing(context->device))
|
||||
+ else if (use_indexed_vertex_blending(state, stream_info) && use_software_vertex_processing(context->device))
|
||||
+ {
|
||||
+ WARN_(d3d_perf)("Using software emulation because application requested SVP.\n");
|
||||
+ emulation = TRUE;
|
||||
+ }
|
||||
+
|
||||
|
||||
if (emulation)
|
||||
{
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index dfd0047..d47cd52 100644
|
||||
index 7e14b88..717a7d3 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -3959,31 +3959,15 @@ HRESULT CDECL wined3d_device_validate_device(const struct wined3d_device *device
|
||||
@@ -3914,31 +3914,15 @@ HRESULT CDECL wined3d_device_validate_device(const struct wined3d_device *device
|
||||
|
||||
void CDECL wined3d_device_set_software_vertex_processing(struct wined3d_device *device, BOOL software)
|
||||
{
|
||||
@ -202,10 +201,10 @@ index dfd0047..d47cd52 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index c857509..66a2921 100644
|
||||
index d53ad70..3cfa901 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -8605,14 +8605,21 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8583,14 +8583,21 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -233,7 +232,7 @@ index c857509..66a2921 100644
|
||||
}
|
||||
|
||||
shader_addline(buffer, "gl_Position = ffp_projection_matrix * ec_pos;\n");
|
||||
@@ -8630,10 +8637,17 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
@@ -8608,10 +8615,17 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr
|
||||
shader_addline(buffer, "vec3 normal = vec3(0.0);\n");
|
||||
if (settings->normal)
|
||||
{
|
||||
@ -255,10 +254,10 @@ index c857509..66a2921 100644
|
||||
|
||||
if (settings->normalize)
|
||||
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
index 4a071cc..26b0fd2 100644
|
||||
index 8a07b3e..870f261 100644
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -6274,7 +6274,12 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context,
|
||||
@@ -6245,7 +6245,12 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context,
|
||||
}
|
||||
|
||||
if (use_indexed_vertex_blending(state, si))
|
||||
@ -273,10 +272,10 @@ index 4a071cc..26b0fd2 100644
|
||||
settings->clipping = state->render_states[WINED3D_RS_CLIPPING]
|
||||
&& state->render_states[WINED3D_RS_CLIPPLANEENABLE];
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 7a79199..2f709d9 100644
|
||||
index 92a5ef1..3d08572 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2746,7 +2746,7 @@ struct wined3d_ffp_vs_settings
|
||||
@@ -2743,7 +2743,7 @@ struct wined3d_ffp_vs_settings
|
||||
DWORD flatshading : 1;
|
||||
DWORD swizzle_map : 16; /* MAX_ATTRIBS, 16 */
|
||||
DWORD vb_indices : 1;
|
||||
@ -285,7 +284,7 @@ index 7a79199..2f709d9 100644
|
||||
|
||||
DWORD texgen[MAX_TEXTURES];
|
||||
};
|
||||
@@ -4359,6 +4359,20 @@ static inline BOOL use_indexed_vertex_blending(const struct wined3d_state *state
|
||||
@@ -4345,6 +4345,20 @@ static inline BOOL use_indexed_vertex_blending(const struct wined3d_state *state
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -307,5 +306,5 @@ index 7a79199..2f709d9 100644
|
||||
{
|
||||
/* Check state->vertex_declaration to allow this to be used before the
|
||||
--
|
||||
1.9.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 910fbdd6cd674e2ba1c9ca201787540db9de10f3 Mon Sep 17 00:00:00 2001
|
||||
From 92cf51ff4ea2c2fa41d1996062a357b4b4017268 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 01:47:49 +0200
|
||||
Subject: d3d9/tests: Check MaxVertexBlendMatrixIndex capability.
|
||||
@ -8,10 +8,10 @@ Subject: d3d9/tests: Check MaxVertexBlendMatrixIndex capability.
|
||||
1 file changed, 28 insertions(+)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index 49d519befb5..e7e6cf6e9e9 100644
|
||||
index 1fe62fa..11b933f 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -19987,7 +19987,9 @@ static void test_indexed_vertex_blending(void)
|
||||
@@ -20535,7 +20535,9 @@ static void test_indexed_vertex_blending(void)
|
||||
IDirect3DDevice9 *device;
|
||||
IDirect3D9 *d3d;
|
||||
ULONG refcount;
|
||||
@ -21,7 +21,7 @@ index 49d519befb5..e7e6cf6e9e9 100644
|
||||
|
||||
window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
|
||||
0, 0, 640, 480, NULL, NULL, NULL, NULL);
|
||||
@@ -20016,7 +20018,14 @@ static void test_indexed_vertex_blending(void)
|
||||
@@ -20564,7 +20566,14 @@ static void test_indexed_vertex_blending(void)
|
||||
if (SUCCEEDED(IDirect3D9_CreateDevice(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, window,
|
||||
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &present_parameters, &device)))
|
||||
{
|
||||
@ -36,7 +36,7 @@ index 49d519befb5..e7e6cf6e9e9 100644
|
||||
refcount = IDirect3DDevice9_Release(device);
|
||||
ok(!refcount, "Device has %u references left.\n", refcount);
|
||||
}
|
||||
@@ -20026,7 +20035,26 @@ static void test_indexed_vertex_blending(void)
|
||||
@@ -20574,7 +20583,26 @@ static void test_indexed_vertex_blending(void)
|
||||
if (SUCCEEDED(IDirect3D9_CreateDevice(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, window,
|
||||
D3DCREATE_MIXED_VERTEXPROCESSING, &present_parameters, &device)))
|
||||
{
|
||||
@ -64,5 +64,5 @@ index 49d519befb5..e7e6cf6e9e9 100644
|
||||
ok(!refcount, "Device has %u references left.\n", refcount);
|
||||
}
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 405f1ca63e69fb5d9143ea26ec375ffef815e0a5 Mon Sep 17 00:00:00 2001
|
||||
From 037c5691b9d2dd35a61017cfc8472c879048c182 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 01:54:22 +0200
|
||||
Subject: wined3d: Report correct number of blend matrices when software vertex
|
||||
@ -11,10 +11,10 @@ Subject: wined3d: Report correct number of blend matrices when software vertex
|
||||
3 files changed, 14 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
||||
index e7e6cf6e9e9..1c219ab7cf4 100644
|
||||
index 11b933f..2ea94fe 100644
|
||||
--- a/dlls/d3d9/tests/visual.c
|
||||
+++ b/dlls/d3d9/tests/visual.c
|
||||
@@ -20021,7 +20021,7 @@ static void test_indexed_vertex_blending(void)
|
||||
@@ -20569,7 +20569,7 @@ static void test_indexed_vertex_blending(void)
|
||||
memset(&caps, 0, sizeof(caps));
|
||||
hr = IDirect3DDevice9_GetDeviceCaps(device, &caps);
|
||||
ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr);
|
||||
@ -23,7 +23,7 @@ index e7e6cf6e9e9..1c219ab7cf4 100644
|
||||
caps.MaxVertexBlendMatrixIndex);
|
||||
|
||||
do_test_indexed_vertex_blending(device,"IVB software");
|
||||
@@ -20047,7 +20047,7 @@ static void test_indexed_vertex_blending(void)
|
||||
@@ -20595,7 +20595,7 @@ static void test_indexed_vertex_blending(void)
|
||||
memset(&caps, 0, sizeof(caps));
|
||||
hr = IDirect3DDevice9_GetDeviceCaps(device, &caps);
|
||||
ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr);
|
||||
@ -33,10 +33,10 @@ index e7e6cf6e9e9..1c219ab7cf4 100644
|
||||
|
||||
hr = IDirect3DDevice9_SetSoftwareVertexProcessing(device, FALSE);
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 31c7ea431d8..6b92bc679c2 100644
|
||||
index 717a7d3..ea2d136 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -3530,10 +3530,17 @@ struct wined3d_texture * CDECL wined3d_device_get_texture(const struct wined3d_d
|
||||
@@ -3480,10 +3480,17 @@ 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)
|
||||
{
|
||||
@ -56,10 +56,10 @@ index 31c7ea431d8..6b92bc679c2 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 a34ead003cc..fe12e81b915 100644
|
||||
index 86e790a..0acaa4d 100644
|
||||
--- a/dlls/wined3d/directx.c
|
||||
+++ b/dlls/wined3d/directx.c
|
||||
@@ -5981,7 +5981,10 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
||||
@@ -6002,7 +6002,10 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
|
||||
caps->MaxUserClipPlanes = vertex_caps.max_user_clip_planes;
|
||||
caps->MaxActiveLights = vertex_caps.max_active_lights;
|
||||
caps->MaxVertexBlendMatrices = vertex_caps.max_vertex_blend_matrices;
|
||||
@ -72,5 +72,5 @@ index a34ead003cc..fe12e81b915 100644
|
||||
caps->FVFCaps = vertex_caps.fvf_caps;
|
||||
caps->RasterCaps |= vertex_caps.raster_caps;
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8a4c30330dab1a81ffd0bd51215ffdd2f6bf9a61 Mon Sep 17 00:00:00 2001
|
||||
From a769af7ae2309b0bd56753701bdd75daa236885a Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 31 Aug 2017 07:42:31 +0200
|
||||
Subject: wined3d: Track updates of vertex blend matrices separately.
|
||||
@ -9,10 +9,10 @@ Subject: wined3d: Track updates of vertex blend matrices separately.
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
||||
index a3050590dfb..31b892faf65 100644
|
||||
index 3cfa901..28cf2c7 100644
|
||||
--- a/dlls/wined3d/glsl_shader.c
|
||||
+++ b/dlls/wined3d/glsl_shader.c
|
||||
@@ -1508,6 +1508,8 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
@@ -1528,6 +1528,8 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context
|
||||
{
|
||||
if (prog->vs.modelview_matrix_location[i] == -1)
|
||||
break;
|
||||
@ -21,7 +21,7 @@ index a3050590dfb..31b892faf65 100644
|
||||
|
||||
get_modelview_matrix(context, state, i, &mat);
|
||||
GL_EXTCALL(glUniformMatrix4fv(prog->vs.modelview_matrix_location[i], 1, FALSE, &mat._11));
|
||||
@@ -11002,7 +11004,8 @@ static void glsl_vertex_pipe_world(struct wined3d_context *context,
|
||||
@@ -11243,7 +11245,8 @@ static void glsl_vertex_pipe_world(struct wined3d_context *context,
|
||||
static void glsl_vertex_pipe_vertexblend(struct wined3d_context *context,
|
||||
const struct wined3d_state *state, DWORD state_id)
|
||||
{
|
||||
@ -32,10 +32,10 @@ index a3050590dfb..31b892faf65 100644
|
||||
|
||||
static void glsl_vertex_pipe_view(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index a2be7326834..5089e6b8c32 100644
|
||||
index 3d08572..8f791cb 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -435,13 +435,14 @@ enum wined3d_shader_resource_type
|
||||
@@ -440,13 +440,14 @@ enum wined3d_shader_resource_type
|
||||
#define WINED3D_SHADER_CONST_PS_Y_CORR 0x00001000
|
||||
#define WINED3D_SHADER_CONST_PS_NP2_FIXUP 0x00002000
|
||||
#define WINED3D_SHADER_CONST_FFP_MODELVIEW 0x00004000
|
||||
@ -52,5 +52,5 @@ index a2be7326834..5089e6b8c32 100644
|
||||
enum wined3d_shader_register_type
|
||||
{
|
||||
--
|
||||
2.14.1
|
||||
2.7.4
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user