summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_gs_surface_state.c
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2015-07-20 17:13:17 +0300
committerFrancisco Jerez <currojerez@riseup.net>2015-08-11 15:07:38 +0300
commit47f9b07e4cf79a8249c6f9f09148a6a0b4fabacc (patch)
tree332d4cd53e50ff15cc9cbdde6e92bf1772bdc016 /src/mesa/drivers/dri/i965/brw_gs_surface_state.c
parent868f1ba0a4e6e3057be5b8c2458db4773cf82034 (diff)
downloadexternal_mesa3d-47f9b07e4cf79a8249c6f9f09148a6a0b4fabacc.zip
external_mesa3d-47f9b07e4cf79a8249c6f9f09148a6a0b4fabacc.tar.gz
external_mesa3d-47f9b07e4cf79a8249c6f9f09148a6a0b4fabacc.tar.bz2
i965: Hook up image state upload.
v2: Add CS support. Move the image_params array back to brw_stage_prog_data. Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_gs_surface_state.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_gs_surface_state.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_gs_surface_state.c b/src/mesa/drivers/dri/i965/brw_gs_surface_state.c
index 0b8bfc3..0bb3074 100644
--- a/src/mesa/drivers/dri/i965/brw_gs_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_gs_surface_state.c
@@ -119,3 +119,28 @@ const struct brw_tracked_state brw_gs_abo_surfaces = {
},
.emit = brw_upload_gs_abo_surfaces,
};
+
+static void
+brw_upload_gs_image_surfaces(struct brw_context *brw)
+{
+ struct gl_context *ctx = &brw->ctx;
+ /* BRW_NEW_GEOMETRY_PROGRAM */
+ struct gl_shader_program *prog =
+ ctx->_Shader->CurrentProgram[MESA_SHADER_GEOMETRY];
+
+ if (prog) {
+ /* BRW_NEW_GS_PROG_DATA, BRW_NEW_IMAGE_UNITS */
+ brw_upload_image_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_GEOMETRY],
+ &brw->gs.base, &brw->gs.prog_data->base.base);
+ }
+}
+
+const struct brw_tracked_state brw_gs_image_surfaces = {
+ .dirty = {
+ .brw = BRW_NEW_BATCH |
+ BRW_NEW_GEOMETRY_PROGRAM |
+ BRW_NEW_GS_PROG_DATA |
+ BRW_NEW_IMAGE_UNITS,
+ },
+ .emit = brw_upload_gs_image_surfaces,
+};