@ -1609,6 +1609,22 @@ parse_fs_coord_pixel_center( const char **pcur, uint *fs_coord_pixel_center )
return FALSE ;
return FALSE ;
}
}
static boolean
parse_property_next_shader ( const char * * pcur , uint * next_shader )
{
uint i ;
for ( i = 0 ; i < ARRAY_SIZE ( tgsi_processor_type_names ) ; i + + ) {
const char * cur = * pcur ;
if ( str_match_nocase_whole ( & cur , tgsi_processor_type_names [ i ] ) ) {
* next_shader = i ;
* pcur = cur ;
return TRUE ;
}
}
return FALSE ;
}
static boolean parse_property ( struct translate_ctx * ctx )
static boolean parse_property ( struct translate_ctx * ctx )
{
{
@ -1663,6 +1679,12 @@ static boolean parse_property( struct translate_ctx *ctx )
return FALSE ;
return FALSE ;
}
}
break ;
break ;
case TGSI_PROPERTY_NEXT_SHADER :
if ( ! parse_property_next_shader ( & ctx - > cur , & values [ 0 ] ) ) {
report_error ( ctx , " Unknown next shader property value. " ) ;
return FALSE ;
}
break ;
case TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS :
case TGSI_PROPERTY_FS_COLOR0_WRITES_ALL_CBUFS :
default :
default :
if ( ! parse_uint ( & ctx - > cur , & values [ 0 ] ) ) {
if ( ! parse_uint ( & ctx - > cur , & values [ 0 ] ) ) {