Merge remote-tracking branch 'mattst88/nir-lower-pack-unpack' into vulkan
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 25 Jan 2016 23:50:31 +0000 (15:50 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 25 Jan 2016 23:50:31 +0000 (15:50 -0800)
20 files changed:
1  2 
src/glsl/ast_to_hir.cpp
src/glsl/nir/glsl_to_nir.cpp
src/glsl/nir/nir.h
src/glsl/nir/nir_builder.h
src/glsl/nir/nir_opcodes.py
src/glsl/nir/nir_opt_algebraic.py
src/glsl/nir/nir_print.c
src/glsl/nir/shader_enums.c
src/glsl/nir/shader_enums.h
src/mesa/drivers/dri/i965/Makefile.sources
src/mesa/drivers/dri/i965/brw_compiler.h
src/mesa/drivers/dri/i965/brw_defines.h
src/mesa/drivers/dri/i965/brw_fs_generator.cpp
src/mesa/drivers/dri/i965/brw_fs_nir.cpp
src/mesa/drivers/dri/i965/brw_nir.c
src/mesa/drivers/dri/i965/brw_shader.cpp
src/mesa/drivers/dri/i965/brw_vec4.cpp
src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
src/mesa/main/mtypes.h
src/mesa/program/ir_to_mesa.cpp

Simple merge
Simple merge
index 4e3533189e40ee0a5d5986565649bf7244427a9c,3b90b5129f18abe6ab93601975da522b08df4b8a..ec6595b091d2f05f787079b2dc1f63cdaba6ab7e
@@@ -355,35 -349,7 +355,35 @@@ typedef struct nir_variable 
  #define nir_foreach_variable(var, var_list) \
     foreach_list_typed(nir_variable, var, node, var_list)
  
- typedef struct {
 +/**
 + * Returns the bits in the inputs_read, outputs_written, or
 + * system_values_read bitfield corresponding to this variable.
 + */
 +static inline uint64_t
 +nir_variable_get_io_mask(nir_variable *var, gl_shader_stage stage)
 +{
 +   assert(var->data.mode == nir_var_shader_in ||
 +          var->data.mode == nir_var_shader_out ||
 +          var->data.mode == nir_var_system_value);
 +   assert(var->data.location >= 0);
 +
 +   const struct glsl_type *var_type = var->type;
 +   if (stage == MESA_SHADER_GEOMETRY && var->data.mode == nir_var_shader_in) {
 +      /* Most geometry shader inputs are per-vertex arrays */
 +      if (var->data.location >= VARYING_SLOT_VAR0)
 +         assert(glsl_type_is_array(var_type));
 +
 +      if (glsl_type_is_array(var_type))
 +         var_type = glsl_get_array_element(var_type);
 +   }
 +
 +   bool is_vertex_input = (var->data.mode == nir_var_shader_in &&
 +                           stage == MESA_SHADER_VERTEX);
 +   unsigned slots = glsl_count_attribute_slots(var_type, is_vertex_input);
 +   return ((1ull << slots) - 1) << var->data.location;
 +}
 +
+ typedef struct nir_register {
     struct exec_node node;
  
     unsigned num_components; /** < number of vector components */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge