From 3b3c46656ef865f3479d7d365f247de35857058b Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 17 Apr 2014 18:51:02 -0700 Subject: [PATCH] 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 Reviewed-by: Eric Anholt --- 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; } -- 2.7.4