summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFabian Bieler <fabianbieler@fastmail.fm>2014-03-07 10:19:09 +0100
committerMarek Olšák <marek.olsak@amd.com>2015-07-23 00:59:24 +0200
commita2af956963b6bc4d29f37485e44c98008d2ef077 (patch)
tree53c3bba14abcd28e0ba64e2928a52bf6aebfc084 /src
parentdf3860a3e3269bfe77562058fd87b39ae2f57fcc (diff)
downloadexternal_mesa3d-a2af956963b6bc4d29f37485e44c98008d2ef077.zip
external_mesa3d-a2af956963b6bc4d29f37485e44c98008d2ef077.tar.gz
external_mesa3d-a2af956963b6bc4d29f37485e44c98008d2ef077.tar.bz2
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>
Diffstat (limited to 'src')
-rw-r--r--src/glsl/shader_enums.h8
-rw-r--r--src/mesa/drivers/common/meta.c2
-rw-r--r--src/mesa/drivers/dri/i965/intel_debug.c4
-rw-r--r--src/mesa/main/context.c2
-rw-r--r--src/mesa/main/shaderobj.h4
-rw-r--r--src/mesa/program/prog_print.c6
-rw-r--r--src/mesa/program/program.h8
7 files changed, 30 insertions, 4 deletions
diff --git a/src/glsl/shader_enums.h b/src/glsl/shader_enums.h
index 79e0f6b..42a30ae 100644
--- a/src/glsl/shader_enums.h
+++ b/src/glsl/shader_enums.h
@@ -36,9 +36,11 @@
typedef enum
{
MESA_SHADER_VERTEX = 0,
- MESA_SHADER_GEOMETRY = 1,
- MESA_SHADER_FRAGMENT = 2,
- MESA_SHADER_COMPUTE = 3,
+ MESA_SHADER_TESS_CTRL = 1,
+ MESA_SHADER_TESS_EVAL = 2,
+ MESA_SHADER_GEOMETRY = 3,
+ MESA_SHADER_FRAGMENT = 4,
+ MESA_SHADER_COMPUTE = 5,
} gl_shader_stage;
#define MESA_SHADER_STAGES (MESA_SHADER_COMPUTE + 1)
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 12045eb..ca10bbe 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -945,6 +945,8 @@ _mesa_meta_end(struct gl_context *ctx)
if (state & MESA_META_SHADER) {
static const GLenum targets[] = {
GL_VERTEX_SHADER,
+ GL_TESS_CONTROL_SHADER,
+ GL_TESS_EVALUATION_SHADER,
GL_GEOMETRY_SHADER,
GL_FRAGMENT_SHADER,
};
diff --git a/src/mesa/drivers/dri/i965/intel_debug.c b/src/mesa/drivers/dri/i965/intel_debug.c
index b68c212..a077731 100644
--- a/src/mesa/drivers/dri/i965/intel_debug.c
+++ b/src/mesa/drivers/dri/i965/intel_debug.c
@@ -79,11 +79,13 @@ intel_debug_flag_for_shader_stage(gl_shader_stage stage)
{
uint64_t flags[] = {
[MESA_SHADER_VERTEX] = DEBUG_VS,
+ [MESA_SHADER_TESS_CTRL] = 0,
+ [MESA_SHADER_TESS_EVAL] = 0,
[MESA_SHADER_GEOMETRY] = DEBUG_GS,
[MESA_SHADER_FRAGMENT] = DEBUG_WM,
[MESA_SHADER_COMPUTE] = DEBUG_CS,
};
- STATIC_ASSERT(MESA_SHADER_STAGES == 4);
+ STATIC_ASSERT(MESA_SHADER_STAGES == 6);
return flags[stage];
}
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index f4dc4e3..380c21f 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -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->MaxOutputComponents = 0; /* value not used */
break;
+ case MESA_SHADER_TESS_CTRL:
+ case MESA_SHADER_TESS_EVAL:
case MESA_SHADER_GEOMETRY:
prog->MaxParameters = MAX_VERTEX_PROGRAM_PARAMS;
prog->MaxAttribs = MAX_VERTEX_GENERIC_ATTRIBS;
diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h
index 3d696a1..75f019d 100644
--- a/src/mesa/main/shaderobj.h
+++ b/src/mesa/main/shaderobj.h
@@ -111,6 +111,10 @@ _mesa_shader_enum_to_shader_stage(GLenum v)
return MESA_SHADER_FRAGMENT;
case GL_GEOMETRY_SHADER:
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:
return MESA_SHADER_COMPUTE;
default:
diff --git a/src/mesa/program/prog_print.c b/src/mesa/program/prog_print.c
index e4faa63..336a5ef 100644
--- a/src/mesa/program/prog_print.c
+++ b/src/mesa/program/prog_print.c
@@ -1015,6 +1015,12 @@ _mesa_write_shader_to_file(const struct gl_shader *shader)
case MESA_SHADER_FRAGMENT:
type = "frag";
break;
+ case MESA_SHADER_TESS_CTRL:
+ type = "tesc";
+ break;
+ case MESA_SHADER_TESS_EVAL:
+ type = "tese";
+ break;
case MESA_SHADER_VERTEX:
type = "vert";
break;
diff --git a/src/mesa/program/program.h b/src/mesa/program/program.h
index 2d92ab2..396a5c8 100644
--- a/src/mesa/program/program.h
+++ b/src/mesa/program/program.h
@@ -216,6 +216,10 @@ _mesa_program_enum_to_shader_stage(GLenum v)
return MESA_SHADER_FRAGMENT;
case GL_GEOMETRY_PROGRAM_NV:
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:
return MESA_SHADER_COMPUTE;
default:
@@ -235,6 +239,10 @@ _mesa_shader_stage_to_program(unsigned stage)
return GL_FRAGMENT_PROGRAM_ARB;
case MESA_SHADER_GEOMETRY:
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:
return GL_COMPUTE_PROGRAM_NV;
}