mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 20:00:10 +01:00
gallium: move duplicated compute_clipmask() code to draw_vs.h
This commit is contained in:
parent
593cf5a6b5
commit
2ebc99fcbc
4 changed files with 33 additions and 81 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue