mesa: add tessellation shader enums
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:

committed by
Marek Olšák

parent
df3860a3e3
commit
a2af956963
@@ -36,9 +36,11 @@
|
|||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
MESA_SHADER_VERTEX = 0,
|
MESA_SHADER_VERTEX = 0,
|
||||||
MESA_SHADER_GEOMETRY = 1,
|
MESA_SHADER_TESS_CTRL = 1,
|
||||||
MESA_SHADER_FRAGMENT = 2,
|
MESA_SHADER_TESS_EVAL = 2,
|
||||||
MESA_SHADER_COMPUTE = 3,
|
MESA_SHADER_GEOMETRY = 3,
|
||||||
|
MESA_SHADER_FRAGMENT = 4,
|
||||||
|
MESA_SHADER_COMPUTE = 5,
|
||||||
} gl_shader_stage;
|
} gl_shader_stage;
|
||||||
|
|
||||||
#define MESA_SHADER_STAGES (MESA_SHADER_COMPUTE + 1)
|
#define MESA_SHADER_STAGES (MESA_SHADER_COMPUTE + 1)
|
||||||
|
@@ -945,6 +945,8 @@ _mesa_meta_end(struct gl_context *ctx)
|
|||||||
if (state & MESA_META_SHADER) {
|
if (state & MESA_META_SHADER) {
|
||||||
static const GLenum targets[] = {
|
static const GLenum targets[] = {
|
||||||
GL_VERTEX_SHADER,
|
GL_VERTEX_SHADER,
|
||||||
|
GL_TESS_CONTROL_SHADER,
|
||||||
|
GL_TESS_EVALUATION_SHADER,
|
||||||
GL_GEOMETRY_SHADER,
|
GL_GEOMETRY_SHADER,
|
||||||
GL_FRAGMENT_SHADER,
|
GL_FRAGMENT_SHADER,
|
||||||
};
|
};
|
||||||
|
@@ -79,11 +79,13 @@ intel_debug_flag_for_shader_stage(gl_shader_stage stage)
|
|||||||
{
|
{
|
||||||
uint64_t flags[] = {
|
uint64_t flags[] = {
|
||||||
[MESA_SHADER_VERTEX] = DEBUG_VS,
|
[MESA_SHADER_VERTEX] = DEBUG_VS,
|
||||||
|
[MESA_SHADER_TESS_CTRL] = 0,
|
||||||
|
[MESA_SHADER_TESS_EVAL] = 0,
|
||||||
[MESA_SHADER_GEOMETRY] = DEBUG_GS,
|
[MESA_SHADER_GEOMETRY] = DEBUG_GS,
|
||||||
[MESA_SHADER_FRAGMENT] = DEBUG_WM,
|
[MESA_SHADER_FRAGMENT] = DEBUG_WM,
|
||||||
[MESA_SHADER_COMPUTE] = DEBUG_CS,
|
[MESA_SHADER_COMPUTE] = DEBUG_CS,
|
||||||
};
|
};
|
||||||
STATIC_ASSERT(MESA_SHADER_STAGES == 4);
|
STATIC_ASSERT(MESA_SHADER_STAGES == 6);
|
||||||
return flags[stage];
|
return flags[stage];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -478,6 +478,8 @@ init_program_limits(struct gl_constants *consts, gl_shader_stage stage,
|
|||||||
prog->MaxInputComponents = 16 * 4; /* old limit not to break tnl and swrast */
|
prog->MaxInputComponents = 16 * 4; /* old limit not to break tnl and swrast */
|
||||||
prog->MaxOutputComponents = 0; /* value not used */
|
prog->MaxOutputComponents = 0; /* value not used */
|
||||||
break;
|
break;
|
||||||
|
case MESA_SHADER_TESS_CTRL:
|
||||||
|
case MESA_SHADER_TESS_EVAL:
|
||||||
case MESA_SHADER_GEOMETRY:
|
case MESA_SHADER_GEOMETRY:
|
||||||
prog->MaxParameters = MAX_VERTEX_PROGRAM_PARAMS;
|
prog->MaxParameters = MAX_VERTEX_PROGRAM_PARAMS;
|
||||||
prog->MaxAttribs = MAX_VERTEX_GENERIC_ATTRIBS;
|
prog->MaxAttribs = MAX_VERTEX_GENERIC_ATTRIBS;
|
||||||
|
@@ -111,6 +111,10 @@ _mesa_shader_enum_to_shader_stage(GLenum v)
|
|||||||
return MESA_SHADER_FRAGMENT;
|
return MESA_SHADER_FRAGMENT;
|
||||||
case GL_GEOMETRY_SHADER:
|
case GL_GEOMETRY_SHADER:
|
||||||
return MESA_SHADER_GEOMETRY;
|
return MESA_SHADER_GEOMETRY;
|
||||||
|
case GL_TESS_CONTROL_SHADER:
|
||||||
|
return MESA_SHADER_TESS_CTRL;
|
||||||
|
case GL_TESS_EVALUATION_SHADER:
|
||||||
|
return MESA_SHADER_TESS_EVAL;
|
||||||
case GL_COMPUTE_SHADER:
|
case GL_COMPUTE_SHADER:
|
||||||
return MESA_SHADER_COMPUTE;
|
return MESA_SHADER_COMPUTE;
|
||||||
default:
|
default:
|
||||||
|
@@ -1015,6 +1015,12 @@ _mesa_write_shader_to_file(const struct gl_shader *shader)
|
|||||||
case MESA_SHADER_FRAGMENT:
|
case MESA_SHADER_FRAGMENT:
|
||||||
type = "frag";
|
type = "frag";
|
||||||
break;
|
break;
|
||||||
|
case MESA_SHADER_TESS_CTRL:
|
||||||
|
type = "tesc";
|
||||||
|
break;
|
||||||
|
case MESA_SHADER_TESS_EVAL:
|
||||||
|
type = "tese";
|
||||||
|
break;
|
||||||
case MESA_SHADER_VERTEX:
|
case MESA_SHADER_VERTEX:
|
||||||
type = "vert";
|
type = "vert";
|
||||||
break;
|
break;
|
||||||
|
@@ -216,6 +216,10 @@ _mesa_program_enum_to_shader_stage(GLenum v)
|
|||||||
return MESA_SHADER_FRAGMENT;
|
return MESA_SHADER_FRAGMENT;
|
||||||
case GL_GEOMETRY_PROGRAM_NV:
|
case GL_GEOMETRY_PROGRAM_NV:
|
||||||
return MESA_SHADER_GEOMETRY;
|
return MESA_SHADER_GEOMETRY;
|
||||||
|
case GL_TESS_CONTROL_PROGRAM_NV:
|
||||||
|
return MESA_SHADER_TESS_CTRL;
|
||||||
|
case GL_TESS_EVALUATION_PROGRAM_NV:
|
||||||
|
return MESA_SHADER_TESS_EVAL;
|
||||||
case GL_COMPUTE_PROGRAM_NV:
|
case GL_COMPUTE_PROGRAM_NV:
|
||||||
return MESA_SHADER_COMPUTE;
|
return MESA_SHADER_COMPUTE;
|
||||||
default:
|
default:
|
||||||
@@ -235,6 +239,10 @@ _mesa_shader_stage_to_program(unsigned stage)
|
|||||||
return GL_FRAGMENT_PROGRAM_ARB;
|
return GL_FRAGMENT_PROGRAM_ARB;
|
||||||
case MESA_SHADER_GEOMETRY:
|
case MESA_SHADER_GEOMETRY:
|
||||||
return GL_GEOMETRY_PROGRAM_NV;
|
return GL_GEOMETRY_PROGRAM_NV;
|
||||||
|
case MESA_SHADER_TESS_CTRL:
|
||||||
|
return GL_TESS_CONTROL_PROGRAM_NV;
|
||||||
|
case MESA_SHADER_TESS_EVAL:
|
||||||
|
return GL_TESS_EVALUATION_PROGRAM_NV;
|
||||||
case MESA_SHADER_COMPUTE:
|
case MESA_SHADER_COMPUTE:
|
||||||
return GL_COMPUTE_PROGRAM_NV;
|
return GL_COMPUTE_PROGRAM_NV;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user