=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Set base vertex index in CS state.

Alexandre Julliard julliard at winehq.org
Fri Nov 23 14:18:03 CST 2018


Module: wine
Branch: master
Commit: 13c9fda28f2f524435fcdea0d41310ac0d99c1b1
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=13c9fda28f2f524435fcdea0d41310ac0d99c1b1

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Nov 22 17:49:02 2018 +0100

wined3d: Set base vertex index in CS state.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/cs.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index ffa4951..095e3e4 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -845,17 +845,27 @@ static void wined3d_cs_exec_draw(struct wined3d_cs *cs, const void *data)
     const struct wined3d_d3d_info *d3d_info = &cs->device->adapter->d3d_info;
     const struct wined3d_gl_info *gl_info = &cs->device->adapter->gl_info;
     const struct wined3d_shader *geometry_shader;
+    int base_vertex_idx, load_base_vertex_idx;
     struct wined3d_state *state = &cs->state;
     const struct wined3d_cs_draw *op = data;
-    int load_base_vertex_idx;
     unsigned int i;
 
+    base_vertex_idx = 0;
+    if (!op->parameters.indirect)
+    {
+        const struct wined3d_direct_draw_parameters *direct = &op->parameters.u.direct;
+
+        if (op->parameters.indexed && gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX])
+            base_vertex_idx = direct->base_vertex_idx;
+    }
+
     /* ARB_draw_indirect always supports a base vertex offset. */
     if (!op->parameters.indirect && !gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX])
         load_base_vertex_idx = op->parameters.u.direct.base_vertex_idx;
     else
         load_base_vertex_idx = 0;
 
+    state->base_vertex_index = base_vertex_idx;
     if (state->load_base_vertex_index != load_base_vertex_idx)
     {
         state->load_base_vertex_index = load_base_vertex_idx;




More information about the wine-cvs mailing list