Mesa (master): i965: Implement the create_raw_surface() hook on Broadwell.

Kenneth Graunke kwg at kemper.freedesktop.org
Thu May 1 07:24:58 UTC 2014


Module: Mesa
Branch: master
Commit: 3b3c46656ef865f3479d7d365f247de35857058b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b3c46656ef865f3479d7d365f247de35857058b

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Thu Apr 17 18:51:02 2014 -0700

i965: Implement the create_raw_surface() hook on Broadwell.

Otherwise we crash when setting up atomic buffer objects.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77221
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/mesa/drivers/dri/i965/gen8_surface_state.c |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/gen8_surface_state.c b/src/mesa/drivers/dri/i965/gen8_surface_state.c
index 90ec21a..4db5359 100644
--- a/src/mesa/drivers/dri/i965/gen8_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_surface_state.c
@@ -217,6 +217,22 @@ gen8_update_texture_surface(struct gl_context *ctx,
                            I915_GEM_DOMAIN_SAMPLER, 0);
 }
 
+static void
+gen8_create_raw_surface(struct brw_context *brw, drm_intel_bo *bo,
+                        uint32_t offset, uint32_t size,
+                        uint32_t *out_offset, bool rw)
+{
+   gen8_emit_buffer_surface_state(brw,
+                                  out_offset,
+                                  bo,
+                                  offset,
+                                  BRW_SURFACEFORMAT_RAW,
+                                  size,
+                                  1,
+                                  0 /* mocs */,
+                                  true /* rw */);
+}
+
 /**
  * Create the constant buffer surface.  Vertex/fragment shader constants will be
  * read from this buffer with Data Port Read instructions/messages.
@@ -358,5 +374,6 @@ gen8_init_vtable_surface_functions(struct brw_context *brw)
    brw->vtbl.update_renderbuffer_surface = gen8_update_renderbuffer_surface;
    brw->vtbl.update_null_renderbuffer_surface =
       gen8_update_null_renderbuffer_surface;
+   brw->vtbl.create_raw_surface = gen8_create_raw_surface;
    brw->vtbl.emit_buffer_surface_state = gen8_emit_buffer_surface_state;
 }




More information about the mesa-commit mailing list