summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_vs.c
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2015-01-21 17:34:49 +0200
committerFrancisco Jerez <currojerez@riseup.net>2015-08-11 15:07:38 +0300
commit87a3e02d9bec689e110f820bba7b125b3e801fdd (patch)
treea827f109a7a6c04f02a838d79971b2d4597cf525 /src/mesa/drivers/dri/i965/brw_vs.c
parent3144844f5ca89cd5743bc9b0ac142ccf862af557 (diff)
downloadexternal_mesa3d-87a3e02d9bec689e110f820bba7b125b3e801fdd.zip
external_mesa3d-87a3e02d9bec689e110f820bba7b125b3e801fdd.tar.gz
external_mesa3d-87a3e02d9bec689e110f820bba7b125b3e801fdd.tar.bz2
i965: Define and initialize image parameter structure.
This will be used to pass image meta-data to the shader when we cannot use typed surface reads and writes. All entries except surface_idx and size are otherwise unused and will get eliminated by the uniform packing pass. size will be used for bounds checking with some image formats and will be useful for ARB_shader_image_size too. surface_idx is always used. v2: Add CS support. Move the image_params array back to brw_stage_prog_data. v3: Improve documentation. Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_vs.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c
index 2b9b005..20bc7a9 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.c
+++ b/src/mesa/drivers/dri/i965/brw_vs.c
@@ -122,7 +122,7 @@ brw_codegen_vs_prog(struct brw_context *brw,
* conservative here.
*/
param_count = vs->num_uniform_components * 4;
-
+ stage_prog_data->nr_image_params = vs->NumImages;
} else {
param_count = vp->program.Base.Parameters->NumParameters * 4;
}
@@ -135,6 +135,9 @@ brw_codegen_vs_prog(struct brw_context *brw,
rzalloc_array(NULL, const gl_constant_value *, param_count);
stage_prog_data->pull_param =
rzalloc_array(NULL, const gl_constant_value *, param_count);
+ stage_prog_data->image_param =
+ rzalloc_array(NULL, struct brw_image_param,
+ stage_prog_data->nr_image_params);
stage_prog_data->nr_params = param_count;
GLbitfield64 outputs_written = vp->program.Base.OutputsWritten;