mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
mesa: set up gl_vert_result and gl_frag_attrib values for gl_ClipDistance.
This patch assigns enumerated values for gl_ClipDistance in the gl_vert_result and gl_frag_attrib enums, so that driver back-ends can assign gl_ClipDistance to the appropriate hardware registers. It also adjusts the functions _mesa_vert_result_to_frag_attrib() and _mesa_frag_attrib_to_vert_result() (which translate between the two enums) to correctly translate the new enumerated values. Reviewed-by: Eric Anholt <eric@anholt.net> Tested-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
1ad54ae0b1
commit
3d7c5a4f6f
2 changed files with 14 additions and 10 deletions
|
|
@ -621,9 +621,9 @@ generate_130_vs_variables(exec_list *instructions,
|
|||
const glsl_type *const clip_distance_array_type =
|
||||
glsl_type::get_array_instance(glsl_type::float_type, 0);
|
||||
|
||||
/* FINISHME: gl_ClipDistance needs a real location assigned. */
|
||||
add_variable(instructions, state->symbols,
|
||||
"gl_ClipDistance", clip_distance_array_type, ir_var_out, -1);
|
||||
"gl_ClipDistance", clip_distance_array_type, ir_var_out,
|
||||
VERT_RESULT_CLIP_DIST0);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -841,9 +841,9 @@ generate_130_fs_variables(exec_list *instructions,
|
|||
const glsl_type *const clip_distance_array_type =
|
||||
glsl_type::get_array_instance(glsl_type::float_type, 0);
|
||||
|
||||
/* FINISHME: gl_ClipDistance needs a real location assigned. */
|
||||
add_variable(instructions, state->symbols,
|
||||
"gl_ClipDistance", clip_distance_array_type, ir_var_in, -1);
|
||||
"gl_ClipDistance", clip_distance_array_type, ir_var_in,
|
||||
FRAG_ATTRIB_CLIP_DIST0);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -214,7 +214,9 @@ typedef enum
|
|||
VERT_RESULT_BFC0 = 13,
|
||||
VERT_RESULT_BFC1 = 14,
|
||||
VERT_RESULT_EDGE = 15,
|
||||
VERT_RESULT_VAR0 = 16, /**< shader varying */
|
||||
VERT_RESULT_CLIP_DIST0 = 16,
|
||||
VERT_RESULT_CLIP_DIST1 = 17,
|
||||
VERT_RESULT_VAR0 = 18, /**< shader varying */
|
||||
VERT_RESULT_MAX = (VERT_RESULT_VAR0 + MAX_VARYING)
|
||||
} gl_vert_result;
|
||||
|
||||
|
|
@ -312,7 +314,9 @@ typedef enum
|
|||
FRAG_ATTRIB_TEX7 = 11,
|
||||
FRAG_ATTRIB_FACE = 12, /**< front/back face */
|
||||
FRAG_ATTRIB_PNTC = 13, /**< sprite/point coord */
|
||||
FRAG_ATTRIB_VAR0 = 14, /**< shader varying */
|
||||
FRAG_ATTRIB_CLIP_DIST0 = 14,
|
||||
FRAG_ATTRIB_CLIP_DIST1 = 15,
|
||||
FRAG_ATTRIB_VAR0 = 16, /**< shader varying */
|
||||
FRAG_ATTRIB_MAX = (FRAG_ATTRIB_VAR0 + MAX_VARYING)
|
||||
} gl_frag_attrib;
|
||||
|
||||
|
|
@ -329,8 +333,8 @@ typedef enum
|
|||
static INLINE int
|
||||
_mesa_vert_result_to_frag_attrib(gl_vert_result vert_result)
|
||||
{
|
||||
if (vert_result >= VERT_RESULT_VAR0)
|
||||
return vert_result - VERT_RESULT_VAR0 + FRAG_ATTRIB_VAR0;
|
||||
if (vert_result >= VERT_RESULT_CLIP_DIST0)
|
||||
return vert_result - VERT_RESULT_CLIP_DIST0 + FRAG_ATTRIB_CLIP_DIST0;
|
||||
else if (vert_result <= VERT_RESULT_TEX7)
|
||||
return vert_result;
|
||||
else
|
||||
|
|
@ -351,8 +355,8 @@ _mesa_frag_attrib_to_vert_result(gl_frag_attrib frag_attrib)
|
|||
{
|
||||
if (frag_attrib <= FRAG_ATTRIB_TEX7)
|
||||
return frag_attrib;
|
||||
else if (frag_attrib >= FRAG_ATTRIB_VAR0)
|
||||
return frag_attrib - FRAG_ATTRIB_VAR0 + VERT_RESULT_VAR0;
|
||||
else if (frag_attrib >= FRAG_ATTRIB_CLIP_DIST0)
|
||||
return frag_attrib - FRAG_ATTRIB_CLIP_DIST0 + VERT_RESULT_CLIP_DIST0;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue