glsl: Add shared variable type
Shared variables are stored in a common pool accessible by all threads in a compute shader local work group. These variables are similar to OpenCL's local/__local variables. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
This commit is contained in:
@@ -325,6 +325,7 @@ enum ir_variable_mode {
|
|||||||
ir_var_auto = 0, /**< Function local variables and globals. */
|
ir_var_auto = 0, /**< Function local variables and globals. */
|
||||||
ir_var_uniform, /**< Variable declared as a uniform. */
|
ir_var_uniform, /**< Variable declared as a uniform. */
|
||||||
ir_var_shader_storage, /**< Variable declared as an ssbo. */
|
ir_var_shader_storage, /**< Variable declared as an ssbo. */
|
||||||
|
ir_var_shader_shared, /**< Variable declared as shared. */
|
||||||
ir_var_shader_in,
|
ir_var_shader_in,
|
||||||
ir_var_shader_out,
|
ir_var_shader_out,
|
||||||
ir_var_function_in,
|
ir_var_function_in,
|
||||||
|
@@ -174,7 +174,7 @@ void ir_print_visitor::visit(ir_variable *ir)
|
|||||||
const char *const patc = (ir->data.patch) ? "patch " : "";
|
const char *const patc = (ir->data.patch) ? "patch " : "";
|
||||||
const char *const inv = (ir->data.invariant) ? "invariant " : "";
|
const char *const inv = (ir->data.invariant) ? "invariant " : "";
|
||||||
const char *const mode[] = { "", "uniform ", "shader_storage ",
|
const char *const mode[] = { "", "uniform ", "shader_storage ",
|
||||||
"shader_in ", "shader_out ",
|
"shader_shared ", "shader_in ", "shader_out ",
|
||||||
"in ", "out ", "inout ",
|
"in ", "out ", "inout ",
|
||||||
"const_in ", "sys ", "temporary " };
|
"const_in ", "sys ", "temporary " };
|
||||||
STATIC_ASSERT(ARRAY_SIZE(mode) == ir_var_mode_count);
|
STATIC_ASSERT(ARRAY_SIZE(mode) == ir_var_mode_count);
|
||||||
|
Reference in New Issue
Block a user