[Mesa-dev] [PATCH 3/8] tgsi: introduce NonHelperMask

2016-03-30 Thread Dave Airlie
From: Dave Airlie 

This is a mask of which of the current 2x2 grid are non-helper
invocations. This allows us to mask off the helper invocations
later for the image operations.

Signed-off-by: Dave Airlie 
---
 src/gallium/auxiliary/tgsi/tgsi_exec.c | 2 ++
 src/gallium/auxiliary/tgsi/tgsi_exec.h | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c 
b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index a44a05c..fa1c916 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -5199,6 +5199,8 @@ tgsi_exec_machine_run( struct tgsi_exec_machine *mach )
   default_mask = 0x1;
}
 
+   if (mach->NonHelperMask == 0)
+  mach->NonHelperMask = default_mask;
mach->CondMask = default_mask;
mach->LoopMask = default_mask;
mach->ContMask = default_mask;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.h 
b/src/gallium/auxiliary/tgsi/tgsi_exec.h
index 8b5a580..6bcf45b 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.h
@@ -312,6 +312,9 @@ struct tgsi_exec_machine
struct tgsi_exec_vector   QuadPos;
float Face;/**< +1 if front facing, -1 if back 
facing */
bool  flatshade_color;
+
+   /* See GLSL 4.50 specification for definition of helper invocations */
+   uint NonHelperMask;  /**< non-helpers */
/* Conditional execution masks */
uint CondMask;  /**< For IF/ELSE/ENDIF */
uint LoopMask;  /**< For BGNLOOP/ENDLOOP */
-- 
2.5.0

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 3/8] tgsi: introduce NonHelperMask

2016-03-22 Thread Dave Airlie
On 23 March 2016 at 01:37, Brian Paul  wrote:
> On 03/21/2016 04:02 PM, Dave Airlie wrote:
>>
>> From: Dave Airlie 
>>
>> This is a mask of which of the current 2x2 grid are non-helper
>> invocations. This allows us to mask off the helper invocations
>> later for the image operations.
>
>
> Can you elaborate on what a helper invocation is somewhere in the comments?

It's defined in the GLSL 4.5 spec.

"A helper invocation is a fragment-shader invocation that is created
solely for the purposes of evaluating derivatives for use in
non-helper fragment-shader invocations."

Then there is a big chunk of text, I could add a comment saying it's
in the spec.

Dave.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 3/8] tgsi: introduce NonHelperMask

2016-03-22 Thread Brian Paul

On 03/21/2016 04:02 PM, Dave Airlie wrote:

From: Dave Airlie 

This is a mask of which of the current 2x2 grid are non-helper
invocations. This allows us to mask off the helper invocations
later for the image operations.


Can you elaborate on what a helper invocation is somewhere in the comments?




Signed-off-by: Dave Airlie 
---
  src/gallium/auxiliary/tgsi/tgsi_exec.c | 2 ++
  src/gallium/auxiliary/tgsi/tgsi_exec.h | 2 ++
  2 files changed, 4 insertions(+)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c 
b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index a44a05c..fa1c916 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -5199,6 +5199,8 @@ tgsi_exec_machine_run( struct tgsi_exec_machine *mach )
default_mask = 0x1;
 }

+   if (mach->NonHelperMask == 0)
+  mach->NonHelperMask = default_mask;
 mach->CondMask = default_mask;
 mach->LoopMask = default_mask;
 mach->ContMask = default_mask;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.h 
b/src/gallium/auxiliary/tgsi/tgsi_exec.h
index 011c9c3..05ae388 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.h
@@ -317,6 +317,8 @@ struct tgsi_exec_machine
 struct tgsi_exec_vector   QuadPos;
 float Face;/**< +1 if front facing, -1 if back 
facing */
 bool  flatshade_color;
+
+   uint NonHelperMask;  /**< non-helpers */
 /* Conditional execution masks */
 uint CondMask;  /**< For IF/ELSE/ENDIF */
 uint LoopMask;  /**< For BGNLOOP/ENDLOOP */



___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 3/8] tgsi: introduce NonHelperMask

2016-03-21 Thread Dave Airlie
From: Dave Airlie 

This is a mask of which of the current 2x2 grid are non-helper
invocations. This allows us to mask off the helper invocations
later for the image operations.

Signed-off-by: Dave Airlie 
---
 src/gallium/auxiliary/tgsi/tgsi_exec.c | 2 ++
 src/gallium/auxiliary/tgsi/tgsi_exec.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c 
b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index a44a05c..fa1c916 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -5199,6 +5199,8 @@ tgsi_exec_machine_run( struct tgsi_exec_machine *mach )
   default_mask = 0x1;
}
 
+   if (mach->NonHelperMask == 0)
+  mach->NonHelperMask = default_mask;
mach->CondMask = default_mask;
mach->LoopMask = default_mask;
mach->ContMask = default_mask;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.h 
b/src/gallium/auxiliary/tgsi/tgsi_exec.h
index 011c9c3..05ae388 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.h
@@ -317,6 +317,8 @@ struct tgsi_exec_machine
struct tgsi_exec_vector   QuadPos;
float Face;/**< +1 if front facing, -1 if back 
facing */
bool  flatshade_color;
+
+   uint NonHelperMask;  /**< non-helpers */
/* Conditional execution masks */
uint CondMask;  /**< For IF/ELSE/ENDIF */
uint LoopMask;  /**< For BGNLOOP/ENDLOOP */
-- 
2.5.0

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev