There are some line wrapping violations here but those lines will get deleted in the following patch. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>tags/17.1-branchpoint
@@ -169,8 +169,6 @@ glsl_to_nir(const struct gl_shader_program *shader_prog, | |||
shader->info->name = ralloc_asprintf(shader, "GLSL%d", shader_prog->Name); | |||
if (shader_prog->Label) | |||
shader->info->label = ralloc_strdup(shader, shader_prog->Label); | |||
shader->info->clip_distance_array_size = sh->Program->ClipDistanceArraySize; | |||
shader->info->cull_distance_array_size = sh->Program->CullDistanceArraySize; | |||
shader->info->has_transform_feedback_varyings = | |||
shader_prog->TransformFeedback.NumVarying > 0; | |||
@@ -634,8 +634,8 @@ analyze_clip_cull_usage(struct gl_shader_program *prog, | |||
/** | |||
* Verify that a vertex shader executable meets all semantic requirements. | |||
* | |||
* Also sets prog->Vert.ClipDistanceArraySize and | |||
* prog->Vert.CullDistanceArraySize as a side effect. | |||
* Also sets info.clip_distance_array_size and | |||
* info.cull_distance_array_size as a side effect. | |||
* | |||
* \param shader Vertex shader executable to be verified | |||
*/ | |||
@@ -690,8 +690,8 @@ validate_vertex_shader_executable(struct gl_shader_program *prog, | |||
} | |||
analyze_clip_cull_usage(prog, shader, ctx, | |||
&prog->Vert.ClipDistanceArraySize, | |||
&prog->Vert.CullDistanceArraySize); | |||
&shader->Program->info.clip_distance_array_size, | |||
&shader->Program->info.cull_distance_array_size); | |||
} | |||
void | |||
@@ -703,8 +703,8 @@ validate_tess_eval_shader_executable(struct gl_shader_program *prog, | |||
return; | |||
analyze_clip_cull_usage(prog, shader, ctx, | |||
&prog->TessEval.ClipDistanceArraySize, | |||
&prog->TessEval.CullDistanceArraySize); | |||
&shader->Program->info.clip_distance_array_size, | |||
&shader->Program->info.cull_distance_array_size); | |||
} | |||
@@ -735,8 +735,8 @@ validate_fragment_shader_executable(struct gl_shader_program *prog, | |||
/** | |||
* Verify that a geometry shader executable meets all semantic requirements | |||
* | |||
* Also sets prog->Geom.VerticesIn, and prog->Geom.ClipDistanceArraySize and | |||
* prog->Geom.CullDistanceArraySize as a side effect. | |||
* Also sets prog->Geom.VerticesIn, and info.clip_distance_array_sizeand | |||
* info.cull_distance_array_size as a side effect. | |||
* | |||
* \param shader Geometry shader executable to be verified | |||
*/ | |||
@@ -752,8 +752,8 @@ validate_geometry_shader_executable(struct gl_shader_program *prog, | |||
prog->Geom.VerticesIn = num_vertices; | |||
analyze_clip_cull_usage(prog, shader, ctx, | |||
&prog->Geom.ClipDistanceArraySize, | |||
&prog->Geom.CullDistanceArraySize); | |||
&shader->Program->info.clip_distance_array_size, | |||
&shader->Program->info.cull_distance_array_size); | |||
} | |||
/** | |||
@@ -4776,14 +4776,14 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog) | |||
} | |||
if (num_shaders[MESA_SHADER_GEOMETRY] > 0) { | |||
prog->LastClipDistanceArraySize = prog->Geom.ClipDistanceArraySize; | |||
prog->LastCullDistanceArraySize = prog->Geom.CullDistanceArraySize; | |||
prog->LastClipDistanceArraySize = prog->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program->info.clip_distance_array_size; | |||
prog->LastCullDistanceArraySize = prog->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program->info.cull_distance_array_size; | |||
} else if (num_shaders[MESA_SHADER_TESS_EVAL] > 0) { | |||
prog->LastClipDistanceArraySize = prog->TessEval.ClipDistanceArraySize; | |||
prog->LastCullDistanceArraySize = prog->TessEval.CullDistanceArraySize; | |||
prog->LastClipDistanceArraySize = prog->_LinkedShaders[MESA_SHADER_TESS_EVAL]->Program->info.clip_distance_array_size; | |||
prog->LastCullDistanceArraySize = prog->_LinkedShaders[MESA_SHADER_TESS_EVAL]->Program->info.cull_distance_array_size; | |||
} else if (num_shaders[MESA_SHADER_VERTEX] > 0) { | |||
prog->LastClipDistanceArraySize = prog->Vert.ClipDistanceArraySize; | |||
prog->LastCullDistanceArraySize = prog->Vert.CullDistanceArraySize; | |||
prog->LastClipDistanceArraySize = prog->_LinkedShaders[MESA_SHADER_VERTEX]->Program->info.clip_distance_array_size; | |||
prog->LastCullDistanceArraySize = prog->_LinkedShaders[MESA_SHADER_VERTEX]->Program->info.cull_distance_array_size; | |||
} else { | |||
prog->LastClipDistanceArraySize = 0; /* Not used */ | |||
prog->LastCullDistanceArraySize = 0; /* Not used */ |
@@ -294,7 +294,7 @@ brw_vs_populate_key(struct brw_context *brw, | |||
if (ctx->Transform.ClipPlanesEnabled != 0 && | |||
(ctx->API == API_OPENGL_COMPAT || ctx->API == API_OPENGLES) && | |||
vp->program.ClipDistanceArraySize == 0) { | |||
vp->program.info.clip_distance_array_size == 0) { | |||
key->nr_userclip_plane_consts = | |||
_mesa_logbase2(ctx->Transform.ClipPlanesEnabled) + 1; | |||
} |
@@ -1933,10 +1933,6 @@ struct gl_program | |||
GLbitfield ShadowSamplers; /**< Texture units used for shadow sampling. */ | |||
GLbitfield ExternalSamplersUsed; /**< Texture units used for samplerExternalOES */ | |||
/* Vertex and geometry shaders fields */ | |||
unsigned ClipDistanceArraySize; | |||
unsigned CullDistanceArraySize; | |||
/* Fragement shader only fields */ | |||
GLboolean OriginUpperLeft; | |||
GLboolean PixelCenterInteger; | |||
@@ -2747,20 +2743,6 @@ struct gl_shader_program | |||
/** Post-link gl_FragDepth layout for ARB_conservative_depth. */ | |||
enum gl_frag_depth_layout FragDepthLayout; | |||
/** | |||
* Tessellation Evaluation shader state from layout qualifiers. | |||
*/ | |||
struct { | |||
/** | |||
* True if gl_ClipDistance is written to. Copied into | |||
* gl_program by _mesa_copy_linked_program_data(). | |||
*/ | |||
GLuint ClipDistanceArraySize; /**< Size of the gl_ClipDistance array, or | |||
0 if not present. */ | |||
GLuint CullDistanceArraySize; /**< Size of the gl_CullDistance array, or | |||
0 if not present. */ | |||
} TessEval; | |||
/** | |||
* Geometry shader state - copied into gl_program by | |||
* _mesa_copy_linked_program_data(). | |||
@@ -2768,30 +2750,10 @@ struct gl_shader_program | |||
struct { | |||
GLint VerticesIn; | |||
/** | |||
* True if gl_ClipDistance is written to. Copied into | |||
* gl_program by _mesa_copy_linked_program_data(). | |||
*/ | |||
GLuint ClipDistanceArraySize; /**< Size of the gl_ClipDistance array, or | |||
0 if not present. */ | |||
GLuint CullDistanceArraySize; /**< Size of the gl_CullDistance array, or | |||
0 if not present. */ | |||
bool UsesEndPrimitive; | |||
bool UsesStreams; | |||
} Geom; | |||
/** Vertex shader state */ | |||
struct { | |||
/** | |||
* True if gl_ClipDistance is written to. Copied into gl_program | |||
* by _mesa_copy_linked_program_data(). | |||
*/ | |||
GLuint ClipDistanceArraySize; /**< Size of the gl_ClipDistance array, or | |||
0 if not present. */ | |||
GLuint CullDistanceArraySize; /**< Size of the gl_CullDistance array, or | |||
0 if not present. */ | |||
} Vert; | |||
/** | |||
* Compute shader state - copied into gl_program by | |||
* _mesa_copy_linked_program_data(). |
@@ -2202,17 +2202,11 @@ _mesa_copy_linked_program_data(const struct gl_shader_program *src, | |||
dst->info.separate_shader = src->SeparateShader; | |||
switch (dst_sh->Stage) { | |||
case MESA_SHADER_VERTEX: | |||
dst->ClipDistanceArraySize = src->Vert.ClipDistanceArraySize; | |||
dst->CullDistanceArraySize = src->Vert.CullDistanceArraySize; | |||
break; | |||
case MESA_SHADER_TESS_EVAL: { | |||
dst->info.tess.primitive_mode = dst_sh->info.TessEval.PrimitiveMode; | |||
dst->info.tess.spacing = dst_sh->info.TessEval.Spacing; | |||
dst->info.tess.ccw = dst_sh->info.TessEval.VertexOrder == GL_CCW; | |||
dst->info.tess.point_mode = dst_sh->info.TessEval.PointMode; | |||
dst->ClipDistanceArraySize = src->TessEval.ClipDistanceArraySize; | |||
dst->CullDistanceArraySize = src->TessEval.CullDistanceArraySize; | |||
break; | |||
} | |||
case MESA_SHADER_GEOMETRY: { | |||
@@ -2221,8 +2215,6 @@ _mesa_copy_linked_program_data(const struct gl_shader_program *src, | |||
dst->info.gs.invocations = dst_sh->info.Geom.Invocations; | |||
dst->info.gs.input_primitive = dst_sh->info.Geom.InputType; | |||
dst->info.gs.output_primitive = dst_sh->info.Geom.OutputType; | |||
dst->ClipDistanceArraySize = src->Geom.ClipDistanceArraySize; | |||
dst->CullDistanceArraySize = src->Geom.CullDistanceArraySize; | |||
dst->info.gs.uses_end_primitive = src->Geom.UsesEndPrimitive; | |||
dst->info.gs.uses_streams = src->Geom.UsesStreams; | |||
break; |
@@ -404,12 +404,12 @@ st_translate_vertex_program(struct st_context *st, | |||
if (ureg == NULL) | |||
return false; | |||
if (stvp->Base.ClipDistanceArraySize) | |||
if (stvp->Base.info.clip_distance_array_size) | |||
ureg_property(ureg, TGSI_PROPERTY_NUM_CLIPDIST_ENABLED, | |||
stvp->Base.ClipDistanceArraySize); | |||
if (stvp->Base.CullDistanceArraySize) | |||
stvp->Base.info.clip_distance_array_size); | |||
if (stvp->Base.info.cull_distance_array_size) | |||
ureg_property(ureg, TGSI_PROPERTY_NUM_CULLDIST_ENABLED, | |||
stvp->Base.CullDistanceArraySize); | |||
stvp->Base.info.cull_distance_array_size); | |||
if (ST_DEBUG & DEBUG_MESA) { | |||
_mesa_print_program(&stvp->Base); | |||
@@ -1219,12 +1219,12 @@ st_translate_program_common(struct st_context *st, | |||
memset(outputMapping, 0, sizeof(outputMapping)); | |||
memset(out_state, 0, sizeof(*out_state)); | |||
if (prog->ClipDistanceArraySize) | |||
if (prog->info.clip_distance_array_size) | |||
ureg_property(ureg, TGSI_PROPERTY_NUM_CLIPDIST_ENABLED, | |||
prog->ClipDistanceArraySize); | |||
if (prog->CullDistanceArraySize) | |||
prog->info.clip_distance_array_size); | |||
if (prog->info.cull_distance_array_size) | |||
ureg_property(ureg, TGSI_PROPERTY_NUM_CULLDIST_ENABLED, | |||
prog->CullDistanceArraySize); | |||
prog->info.cull_distance_array_size); | |||
/* | |||
* Convert Mesa program inputs to TGSI input register semantics. |