[Mesa-dev] [PATCH 36/84] st/nine: Decompose nine_context_set_stream_source

Axel Davy axel.davy at ens.fr
Wed Dec 7 22:55:09 UTC 2016


Part of the refactor to move all gallium calls to
nine_state.c, and have all internal states required
for those calls in nine_context.

Signed-off-by: Axel Davy <axel.davy at ens.fr>
---
 src/gallium/state_trackers/nine/nine_state.c | 34 ++++++++++++++++++++--------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/src/gallium/state_trackers/nine/nine_state.c b/src/gallium/state_trackers/nine/nine_state.c
index 95d7b3d..66b2814 100644
--- a/src/gallium/state_trackers/nine/nine_state.c
+++ b/src/gallium/state_trackers/nine/nine_state.c
@@ -1190,6 +1190,23 @@ nine_context_set_sampler_state(struct NineDevice9 *device,
     context->changed.sampler[Sampler] |= 1 << Type;
 }
 
+static void
+nine_context_set_stream_source_apply(struct NineDevice9 *device,
+                                    UINT StreamNumber,
+                                    struct pipe_resource *res,
+                                    UINT OffsetInBytes,
+                                    UINT Stride)
+{
+    struct nine_context *context = &device->context;
+    const unsigned i = StreamNumber;
+
+    context->vtxbuf[i].stride = Stride;
+    context->vtxbuf[i].buffer_offset = OffsetInBytes;
+    pipe_resource_reference(&context->vtxbuf[i].buffer, res);
+
+    context->changed.vtxbuf |= 1 << StreamNumber;
+}
+
 void
 nine_context_set_stream_source(struct NineDevice9 *device,
                                UINT StreamNumber,
@@ -1197,17 +1214,16 @@ nine_context_set_stream_source(struct NineDevice9 *device,
                                UINT OffsetInBytes,
                                UINT Stride)
 {
-    struct nine_context *context = &device->context;
-    const unsigned i = StreamNumber;
+    struct pipe_resource *res = NULL;
 
-    context->changed.vtxbuf |= 1 << StreamNumber;
+    if (pVBuf9)
+        res = NineVertexBuffer9_GetResource(pVBuf9);
+    /* in the future when there is internal offset, add it
+     * to OffsetInBytes */
 
-    if (pVBuf9) {
-        context->vtxbuf[i].stride = Stride;
-        context->vtxbuf[i].buffer_offset = OffsetInBytes;
-    }
-    pipe_resource_reference(&context->vtxbuf[i].buffer,
-                            pVBuf9 ? NineVertexBuffer9_GetResource(pVBuf9) : NULL);
+    nine_context_set_stream_source_apply(device, StreamNumber,
+                                         res, OffsetInBytes,
+                                         Stride);
 }
 
 void
-- 
2.10.2



More information about the mesa-dev mailing list