diff options
Diffstat (limited to 'src/gallium')
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_vs.h | 33 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_vs_exec.c | 26 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_vs_llvm.c | 27 | ||||
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_vs_sse.c | 28 | 
4 files changed, 33 insertions, 81 deletions
diff --git a/src/gallium/auxiliary/draw/draw_vs.h b/src/gallium/auxiliary/draw/draw_vs.h index 4ee7e705e9..33ce1e335e 100644 --- a/src/gallium/auxiliary/draw/draw_vs.h +++ b/src/gallium/auxiliary/draw/draw_vs.h @@ -31,6 +31,10 @@  #ifndef DRAW_VS_H  #define DRAW_VS_H +#include "draw_context.h" +#include "draw_private.h" + +  struct draw_vertex_shader;  struct draw_context;  struct pipe_shader_state; @@ -47,4 +51,33 @@ struct draw_vertex_shader *  draw_create_vs_llvm(struct draw_context *draw,  		    const struct pipe_shader_state *templ); + +/* Should be part of the generated shader: + */ +static INLINE unsigned +compute_clipmask(const float *clip, /*const*/ float plane[][4], unsigned nr) +{ +   unsigned mask = 0x0; +   unsigned i; + +   /* Do the hardwired planes first: +    */ +   if (-clip[0] + clip[3] < 0) mask |= CLIP_RIGHT_BIT; +   if ( clip[0] + clip[3] < 0) mask |= CLIP_LEFT_BIT; +   if (-clip[1] + clip[3] < 0) mask |= CLIP_TOP_BIT; +   if ( clip[1] + clip[3] < 0) mask |= CLIP_BOTTOM_BIT; +   if (-clip[2] + clip[3] < 0) mask |= CLIP_FAR_BIT; +   if ( clip[2] + clip[3] < 0) mask |= CLIP_NEAR_BIT; + +   /* Followed by any remaining ones: +    */ +   for (i = 6; i < nr; i++) { +      if (dot4(clip, plane[i]) < 0)  +         mask |= (1<<i); +   } + +   return mask; +} + +  #endif diff --git a/src/gallium/auxiliary/draw/draw_vs_exec.c b/src/gallium/auxiliary/draw/draw_vs_exec.c index c6e503686a..9629410abb 100644 --- a/src/gallium/auxiliary/draw/draw_vs_exec.c +++ b/src/gallium/auxiliary/draw/draw_vs_exec.c @@ -41,32 +41,6 @@  #include "tgsi/util/tgsi_parse.h" -static INLINE unsigned -compute_clipmask(const float *clip, /*const*/ float plane[][4], unsigned nr) -{ -   unsigned mask = 0; -   unsigned i; - -   /* Do the hardwired planes first: -    */ -   if (-clip[0] + clip[3] < 0) mask |= CLIP_RIGHT_BIT; -   if ( clip[0] + clip[3] < 0) mask |= CLIP_LEFT_BIT; -   if (-clip[1] + clip[3] < 0) mask |= CLIP_TOP_BIT; -   if ( clip[1] + clip[3] < 0) mask |= CLIP_BOTTOM_BIT; -   if (-clip[2] + clip[3] < 0) mask |= CLIP_FAR_BIT; -   if ( clip[2] + clip[3] < 0) mask |= CLIP_NEAR_BIT; - -   /* Followed by any remaining ones: -    */ -   for (i = 6; i < nr; i++) { -      if (dot4(clip, plane[i]) < 0)  -         mask |= (1<<i); -   } - -   return mask; -} - -  static void  vs_exec_prepare( struct draw_vertex_shader *shader,  		 struct draw_context *draw ) diff --git a/src/gallium/auxiliary/draw/draw_vs_llvm.c b/src/gallium/auxiliary/draw/draw_vs_llvm.c index c8268317ef..7e48428cdd 100644 --- a/src/gallium/auxiliary/draw/draw_vs_llvm.c +++ b/src/gallium/auxiliary/draw/draw_vs_llvm.c @@ -50,33 +50,6 @@ struct draw_llvm_vertex_shader {  }; -static INLINE unsigned -compute_clipmask(const float *clip, /*const*/ float plane[][4], unsigned nr) -{ -   unsigned mask = 0; -   unsigned i; - -   /* Do the hardwired planes first: -    */ -   if (-clip[0] + clip[3] < 0) mask |= CLIP_RIGHT_BIT; -   if ( clip[0] + clip[3] < 0) mask |= CLIP_LEFT_BIT; -   if (-clip[1] + clip[3] < 0) mask |= CLIP_TOP_BIT; -   if ( clip[1] + clip[3] < 0) mask |= CLIP_BOTTOM_BIT; -   if (-clip[2] + clip[3] < 0) mask |= CLIP_FAR_BIT; -   if ( clip[2] + clip[3] < 0) mask |= CLIP_NEAR_BIT; - -   /* Followed by any remaining ones: -    */ -   for (i = 6; i < nr; i++) { -      if (dot4(clip, plane[i]) < 0)  -         mask |= (1<<i); -   } - -   return mask; -} - - -  static void  vs_llvm_prepare( struct draw_vertex_shader *base,  		 struct draw_context *draw ) diff --git a/src/gallium/auxiliary/draw/draw_vs_sse.c b/src/gallium/auxiliary/draw/draw_vs_sse.c index 13394129bc..0ee991d764 100644 --- a/src/gallium/auxiliary/draw/draw_vs_sse.c +++ b/src/gallium/auxiliary/draw/draw_vs_sse.c @@ -62,34 +62,6 @@ struct draw_sse_vertex_shader {  }; -/* Should be part of the generated shader: - */ -static INLINE unsigned -compute_clipmask(const float *clip, /*const*/ float plane[][4], unsigned nr) -{ -   unsigned mask = 0; -   unsigned i; - -   /* Do the hardwired planes first: -    */ -   if (-clip[0] + clip[3] < 0) mask |= CLIP_RIGHT_BIT; -   if ( clip[0] + clip[3] < 0) mask |= CLIP_LEFT_BIT; -   if (-clip[1] + clip[3] < 0) mask |= CLIP_TOP_BIT; -   if ( clip[1] + clip[3] < 0) mask |= CLIP_BOTTOM_BIT; -   if (-clip[2] + clip[3] < 0) mask |= CLIP_FAR_BIT; -   if ( clip[2] + clip[3] < 0) mask |= CLIP_NEAR_BIT; - -   /* Followed by any remaining ones: -    */ -   for (i = 6; i < nr; i++) { -      if (dot4(clip, plane[i]) < 0)  -         mask |= (1<<i); -   } - -   return mask; -} - -  static void  vs_sse_prepare( struct draw_vertex_shader *base,  		struct draw_context *draw )  | 
