Re: [Mesa-dev] [PATCH 17/22] nir: rename global to private memory

2018-11-14 Thread Jason Ekstrand
On Tue, Nov 13, 2018 at 9:49 AM Karol Herbst  wrote:

> the naming is a bit confusing no matter how you look at it. Within OpenCL
> "global" memory is memory accessible from all threads. glsl "global" memory
> normally refers to shader thread private memory declared at global scope.
> As
> we already use "shared" for memory shared across all thrads of a work group
> the solution where everybody could be happy with is to rename "global" to
> "private" and use "global" later for memory usually stored within system
> accessible memory (be it VRAM or system RAM if keeping SVM in mind).
>

Yeah There's just no good way to pick these names.  It's been kicking
around in my brain for a while and I still don't have anything I like.  One
thing I will say, though, is that if we're going to rename global to
private, I think I'd like to rename local to function at the same time.
That way, it's clear that they map to the SPIR-V thing and we're no longer
using the "global/local" terminology from C.  If we do that, then I think
I'm fine with this change.

--Jason


> Signed-off-by: Karol Herbst 
> ---
>  src/compiler/glsl/glsl_to_nir.cpp|  4 ++--
>  src/compiler/nir/nir.c   |  2 +-
>  src/compiler/nir/nir.h   |  2 +-
>  src/compiler/nir/nir_linking_helpers.c   |  2 +-
>  .../nir/nir_lower_constant_initializers.c|  2 +-
>  .../nir/nir_lower_global_vars_to_local.c |  4 ++--
>  src/compiler/nir/nir_lower_io_to_temporaries.c   |  2 +-
>  src/compiler/nir/nir_opt_copy_prop_vars.c|  4 ++--
>  src/compiler/nir/nir_opt_dead_write_vars.c   |  2 +-
>  src/compiler/nir/nir_print.c |  4 ++--
>  src/compiler/nir/nir_remove_dead_variables.c |  4 ++--
>  src/compiler/nir/nir_split_vars.c| 16 
>  src/compiler/nir/tests/vars_tests.cpp|  2 +-
>  src/compiler/spirv/vtn_private.h |  2 +-
>  src/compiler/spirv/vtn_variables.c   |  6 +++---
>  src/gallium/auxiliary/nir/tgsi_to_nir.c  |  2 +-
>  src/mesa/state_tracker/st_glsl_to_nir.cpp|  2 +-
>  17 files changed, 31 insertions(+), 31 deletions(-)
>
> diff --git a/src/compiler/glsl/glsl_to_nir.cpp
> b/src/compiler/glsl/glsl_to_nir.cpp
> index 0479f8fcfe4..8564cd89b5a 100644
> --- a/src/compiler/glsl/glsl_to_nir.cpp
> +++ b/src/compiler/glsl/glsl_to_nir.cpp
> @@ -312,7 +312,7 @@ nir_visitor::visit(ir_variable *ir)
> case ir_var_auto:
> case ir_var_temporary:
>if (is_global)
> - var->data.mode = nir_var_global;
> + var->data.mode = nir_var_private;
>else
>   var->data.mode = nir_var_local;
>break;
> @@ -1433,7 +1433,7 @@ nir_visitor::visit(ir_expression *ir)
>* sense, we'll just turn it into a load which will probably
>* eventually end up as an SSA definition.
>*/
> - assert(this->deref->mode == nir_var_global);
> + assert(this->deref->mode == nir_var_private);
>   op = nir_intrinsic_load_deref;
>}
>
> diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c
> index 249b9357c3f..27f5d1b7bca 100644
> --- a/src/compiler/nir/nir.c
> +++ b/src/compiler/nir/nir.c
> @@ -129,7 +129,7 @@ nir_shader_add_variable(nir_shader *shader,
> nir_variable *var)
>assert(!"nir_shader_add_variable cannot be used for local
> variables");
>break;
>
> -   case nir_var_global:
> +   case nir_var_private:
>exec_list_push_tail(>globals, >node);
>break;
>
> diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
> index 89c28e36618..78f3204d3e2 100644
> --- a/src/compiler/nir/nir.h
> +++ b/src/compiler/nir/nir.h
> @@ -96,7 +96,7 @@ typedef struct {
>  typedef enum {
> nir_var_shader_in   = (1 << 0),
> nir_var_shader_out  = (1 << 1),
> -   nir_var_global  = (1 << 2),
> +   nir_var_private = (1 << 2),
> nir_var_local   = (1 << 3),
> nir_var_uniform = (1 << 4),
> nir_var_shader_storage  = (1 << 5),
> diff --git a/src/compiler/nir/nir_linking_helpers.c
> b/src/compiler/nir/nir_linking_helpers.c
> index a05890ada43..d8358e08e5a 100644
> --- a/src/compiler/nir/nir_linking_helpers.c
> +++ b/src/compiler/nir/nir_linking_helpers.c
> @@ -134,7 +134,7 @@ nir_remove_unused_io_vars(nir_shader *shader, struct
> exec_list *var_list,
>if (!(other_stage & get_variable_io_mask(var, shader->info.stage)))
> {
>   /* This one is invalid, make it a global variable instead */
>   var->data.location = 0;
> - var->data.mode = nir_var_global;
> + var->data.mode = nir_var_private;
>
>   exec_node_remove(>node);
>   exec_list_push_tail(>globals, >node);
> diff --git a/src/compiler/nir/nir_lower_constant_initializers.c
> b/src/compiler/nir/nir_lower_constant_initializers.c
> index 4e9cea46157..932a32b3c9c 100644
> --- 

[Mesa-dev] [PATCH 17/22] nir: rename global to private memory

2018-11-13 Thread Karol Herbst
the naming is a bit confusing no matter how you look at it. Within OpenCL
"global" memory is memory accessible from all threads. glsl "global" memory
normally refers to shader thread private memory declared at global scope. As
we already use "shared" for memory shared across all thrads of a work group
the solution where everybody could be happy with is to rename "global" to
"private" and use "global" later for memory usually stored within system
accessible memory (be it VRAM or system RAM if keeping SVM in mind).

Signed-off-by: Karol Herbst 
---
 src/compiler/glsl/glsl_to_nir.cpp|  4 ++--
 src/compiler/nir/nir.c   |  2 +-
 src/compiler/nir/nir.h   |  2 +-
 src/compiler/nir/nir_linking_helpers.c   |  2 +-
 .../nir/nir_lower_constant_initializers.c|  2 +-
 .../nir/nir_lower_global_vars_to_local.c |  4 ++--
 src/compiler/nir/nir_lower_io_to_temporaries.c   |  2 +-
 src/compiler/nir/nir_opt_copy_prop_vars.c|  4 ++--
 src/compiler/nir/nir_opt_dead_write_vars.c   |  2 +-
 src/compiler/nir/nir_print.c |  4 ++--
 src/compiler/nir/nir_remove_dead_variables.c |  4 ++--
 src/compiler/nir/nir_split_vars.c| 16 
 src/compiler/nir/tests/vars_tests.cpp|  2 +-
 src/compiler/spirv/vtn_private.h |  2 +-
 src/compiler/spirv/vtn_variables.c   |  6 +++---
 src/gallium/auxiliary/nir/tgsi_to_nir.c  |  2 +-
 src/mesa/state_tracker/st_glsl_to_nir.cpp|  2 +-
 17 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/src/compiler/glsl/glsl_to_nir.cpp 
b/src/compiler/glsl/glsl_to_nir.cpp
index 0479f8fcfe4..8564cd89b5a 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -312,7 +312,7 @@ nir_visitor::visit(ir_variable *ir)
case ir_var_auto:
case ir_var_temporary:
   if (is_global)
- var->data.mode = nir_var_global;
+ var->data.mode = nir_var_private;
   else
  var->data.mode = nir_var_local;
   break;
@@ -1433,7 +1433,7 @@ nir_visitor::visit(ir_expression *ir)
   * sense, we'll just turn it into a load which will probably
   * eventually end up as an SSA definition.
   */
- assert(this->deref->mode == nir_var_global);
+ assert(this->deref->mode == nir_var_private);
  op = nir_intrinsic_load_deref;
   }
 
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c
index 249b9357c3f..27f5d1b7bca 100644
--- a/src/compiler/nir/nir.c
+++ b/src/compiler/nir/nir.c
@@ -129,7 +129,7 @@ nir_shader_add_variable(nir_shader *shader, nir_variable 
*var)
   assert(!"nir_shader_add_variable cannot be used for local variables");
   break;
 
-   case nir_var_global:
+   case nir_var_private:
   exec_list_push_tail(>globals, >node);
   break;
 
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 89c28e36618..78f3204d3e2 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -96,7 +96,7 @@ typedef struct {
 typedef enum {
nir_var_shader_in   = (1 << 0),
nir_var_shader_out  = (1 << 1),
-   nir_var_global  = (1 << 2),
+   nir_var_private = (1 << 2),
nir_var_local   = (1 << 3),
nir_var_uniform = (1 << 4),
nir_var_shader_storage  = (1 << 5),
diff --git a/src/compiler/nir/nir_linking_helpers.c 
b/src/compiler/nir/nir_linking_helpers.c
index a05890ada43..d8358e08e5a 100644
--- a/src/compiler/nir/nir_linking_helpers.c
+++ b/src/compiler/nir/nir_linking_helpers.c
@@ -134,7 +134,7 @@ nir_remove_unused_io_vars(nir_shader *shader, struct 
exec_list *var_list,
   if (!(other_stage & get_variable_io_mask(var, shader->info.stage))) {
  /* This one is invalid, make it a global variable instead */
  var->data.location = 0;
- var->data.mode = nir_var_global;
+ var->data.mode = nir_var_private;
 
  exec_node_remove(>node);
  exec_list_push_tail(>globals, >node);
diff --git a/src/compiler/nir/nir_lower_constant_initializers.c 
b/src/compiler/nir/nir_lower_constant_initializers.c
index 4e9cea46157..932a32b3c9c 100644
--- a/src/compiler/nir/nir_lower_constant_initializers.c
+++ b/src/compiler/nir/nir_lower_constant_initializers.c
@@ -98,7 +98,7 @@ nir_lower_constant_initializers(nir_shader *shader, 
nir_variable_mode modes)
if (modes & nir_var_shader_out)
   progress |= lower_const_initializer(, >outputs);
 
-   if (modes & nir_var_global)
+   if (modes & nir_var_private)
   progress |= lower_const_initializer(, >globals);
 
if (modes & nir_var_system_value)
diff --git a/src/compiler/nir/nir_lower_global_vars_to_local.c 
b/src/compiler/nir/nir_lower_global_vars_to_local.c
index be99cf9ad02..6c6d9a9d25c 100644
--- a/src/compiler/nir/nir_lower_global_vars_to_local.c
+++ b/src/compiler/nir/nir_lower_global_vars_to_local.c
@@ -36,7 +36,7 @@ static void