i965: Fix the untyped surface opcodes to deal with indirect surface access.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 23 Apr 2015 11:21:31 +0000 (14:21 +0300)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 4 May 2015 12:05:20 +0000 (15:05 +0300)
commit2f1c16df3e997771bcedb60ae7f16a21c4c60144
treea8aeba71c471b089e7aaabe5704da745d5260980
parent4348046a2f08d9795a158b96f8579f13f5e693e6
i965: Fix the untyped surface opcodes to deal with indirect surface access.

Change brw_untyped_atomic() and brw_untyped_surface_read() to take the
surface index as a register instead of a constant and to use
brw_send_indirect_message() to emit the indirect variant of send with
a dynamically calculated message descriptor.  This will be required to
support variable indexing of image arrays for
ARB_shader_image_load_store.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/mesa/drivers/dri/i965/brw_eu.h
src/mesa/drivers/dri/i965/brw_eu_emit.c
src/mesa/drivers/dri/i965/brw_fs_generator.cpp
src/mesa/drivers/dri/i965/brw_vec4_generator.cpp