struct tgsi_full_declaration *decl )
{
struct dump_ctx *ctx = (struct dump_ctx *)iter;
+ boolean patch = decl->Semantic.Name == TGSI_SEMANTIC_PATCH ||
+ decl->Semantic.Name == TGSI_SEMANTIC_TESSINNER ||
+ decl->Semantic.Name == TGSI_SEMANTIC_TESSOUTER ||
+ decl->Semantic.Name == TGSI_SEMANTIC_PRIMID;
TXT( "DCL " );
TXT(tgsi_file_name(decl->Declaration.File));
- /* all geometry shader inputs are two dimensional */
+ /* all geometry shader inputs and non-patch tessellation shader inputs are
+ * two dimensional
+ */
if (decl->Declaration.File == TGSI_FILE_INPUT &&
- iter->processor.Processor == TGSI_PROCESSOR_GEOMETRY) {
+ (iter->processor.Processor == TGSI_PROCESSOR_GEOMETRY ||
+ (!patch &&
+ (iter->processor.Processor == TGSI_PROCESSOR_TESSCTRL ||
+ iter->processor.Processor == TGSI_PROCESSOR_TESSEVAL)))) {
+ TXT("[]");
+ }
+
+ /* all non-patch tess ctrl shader outputs are two dimensional */
+ if (decl->Declaration.File == TGSI_FILE_OUTPUT &&
+ !patch &&
+ iter->processor.Processor == TGSI_PROCESSOR_TESSCTRL) {
TXT("[]");
}