mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-26 05:40:33 +01:00
mesa: add tessellation shader state and limits
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:
parent
a2af956963
commit
bb97cc66c1
4 changed files with 29 additions and 0 deletions
|
|
@ -296,6 +296,14 @@
|
|||
/** For GL_ARB_pipeline_statistics_query */
|
||||
#define MAX_PIPELINE_STATISTICS 11
|
||||
|
||||
/** For GL_ARB_tessellation_shader */
|
||||
/*@{*/
|
||||
#define MAX_TESS_GEN_LEVEL 64
|
||||
#define MAX_PATCH_VERTICES 32
|
||||
#define MAX_TESS_PATCH_COMPONENTS 120
|
||||
#define MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 4096
|
||||
/*@}*/
|
||||
|
||||
/*
|
||||
* Color channel component order
|
||||
*
|
||||
|
|
|
|||
|
|
@ -716,6 +716,14 @@ _mesa_init_constants(struct gl_constants *consts, gl_api api)
|
|||
|
||||
/** GL_KHR_context_flush_control */
|
||||
consts->ContextReleaseBehavior = GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH;
|
||||
|
||||
/** GL_ARB_tessellation_shader */
|
||||
consts->MaxTessGenLevel = MAX_TESS_GEN_LEVEL;
|
||||
consts->MaxPatchVertices = MAX_PATCH_VERTICES;
|
||||
consts->Program[MESA_SHADER_TESS_CTRL].MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
|
||||
consts->Program[MESA_SHADER_TESS_EVAL].MaxTextureImageUnits = MAX_TEXTURE_IMAGE_UNITS;
|
||||
consts->MaxTessPatchComponents = MAX_TESS_PATCH_COMPONENTS;
|
||||
consts->MaxTessControlTotalOutputComponents = MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3745,6 +3745,12 @@ struct gl_constants
|
|||
GLenum ContextReleaseBehavior;
|
||||
|
||||
struct gl_shader_compiler_options ShaderCompilerOptions[MESA_SHADER_STAGES];
|
||||
|
||||
/** GL_ARB_tessellation_shader */
|
||||
GLuint MaxPatchVertices;
|
||||
GLuint MaxTessGenLevel;
|
||||
GLuint MaxTessPatchComponents;
|
||||
GLuint MaxTessControlTotalOutputComponents;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@ _mesa_init_shader_state(struct gl_context *ctx)
|
|||
*/
|
||||
struct gl_shader_compiler_options options;
|
||||
gl_shader_stage sh;
|
||||
int i;
|
||||
|
||||
memset(&options, 0, sizeof(options));
|
||||
options.MaxUnrollIterations = 32;
|
||||
|
|
@ -126,6 +127,12 @@ _mesa_init_shader_state(struct gl_context *ctx)
|
|||
/* Extended for ARB_separate_shader_objects */
|
||||
ctx->Shader.RefCount = 1;
|
||||
mtx_init(&ctx->Shader.Mutex, mtx_plain);
|
||||
|
||||
ctx->TessCtrlProgram.patch_vertices = 3;
|
||||
for (i = 0; i < 4; ++i)
|
||||
ctx->TessCtrlProgram.patch_default_outer_level[i] = 1.0;
|
||||
for (i = 0; i < 2; ++i)
|
||||
ctx->TessCtrlProgram.patch_default_inner_level[i] = 1.0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue