gallium: Add cylindrical wrap info to TGSI declaration.

This commit is contained in:
Michal Krol
2010-02-03 15:28:03 +01:00
parent 5ee856e195
commit 6f6d740c85
4 changed files with 28 additions and 3 deletions

View File

@@ -107,7 +107,7 @@ tgsi_default_declaration( void )
declaration.Semantic = 0; declaration.Semantic = 0;
declaration.Centroid = 0; declaration.Centroid = 0;
declaration.Invariant = 0; declaration.Invariant = 0;
declaration.Padding = 0; declaration.CylindricalWrap = 0;
return declaration; return declaration;
} }
@@ -121,6 +121,7 @@ tgsi_build_declaration(
unsigned semantic, unsigned semantic,
unsigned centroid, unsigned centroid,
unsigned invariant, unsigned invariant,
unsigned cylindrical_wrap,
struct tgsi_header *header ) struct tgsi_header *header )
{ {
struct tgsi_declaration declaration; struct tgsi_declaration declaration;
@@ -136,6 +137,7 @@ tgsi_build_declaration(
declaration.Semantic = semantic; declaration.Semantic = semantic;
declaration.Centroid = centroid; declaration.Centroid = centroid;
declaration.Invariant = invariant; declaration.Invariant = invariant;
declaration.CylindricalWrap = cylindrical_wrap;
header_bodysize_grow( header ); header_bodysize_grow( header );
@@ -190,6 +192,7 @@ tgsi_build_full_declaration(
full_decl->Declaration.Semantic, full_decl->Declaration.Semantic,
full_decl->Declaration.Centroid, full_decl->Declaration.Centroid,
full_decl->Declaration.Invariant, full_decl->Declaration.Invariant,
full_decl->Declaration.CylindricalWrap,
header ); header );
if (maxsize <= size) if (maxsize <= size)

View File

@@ -68,6 +68,7 @@ tgsi_build_declaration(
unsigned semantic, unsigned semantic,
unsigned centroid, unsigned centroid,
unsigned invariant, unsigned invariant,
unsigned cylindrical_wrap,
struct tgsi_header *header ); struct tgsi_header *header );
struct tgsi_full_declaration struct tgsi_full_declaration

View File

@@ -342,6 +342,22 @@ iter_declaration(
TXT( ", INVARIANT" ); TXT( ", INVARIANT" );
} }
if (decl->Declaration.CylindricalWrap) {
TXT(", CYLWRAP_");
if (decl->Declaration.CylindricalWrap & TGSI_CYLINDRICAL_WRAP_X) {
CHR('X');
}
if (decl->Declaration.CylindricalWrap & TGSI_CYLINDRICAL_WRAP_Y) {
CHR('Y');
}
if (decl->Declaration.CylindricalWrap & TGSI_CYLINDRICAL_WRAP_Z) {
CHR('Z');
}
if (decl->Declaration.CylindricalWrap & TGSI_CYLINDRICAL_WRAP_W) {
CHR('W');
}
}
EOL(); EOL();
return TRUE; return TRUE;

View File

@@ -1,7 +1,7 @@
/************************************************************************** /**************************************************************************
* *
* Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
* Copyright 2009 VMware, Inc. * Copyright 2009-2010 VMware, Inc.
* All Rights Reserved. * All Rights Reserved.
* *
* Permission is hereby granted, free of charge, to any person obtaining a * Permission is hereby granted, free of charge, to any person obtaining a
@@ -102,6 +102,11 @@ enum tgsi_file_type {
#define TGSI_INTERPOLATE_PERSPECTIVE 2 #define TGSI_INTERPOLATE_PERSPECTIVE 2
#define TGSI_INTERPOLATE_COUNT 3 #define TGSI_INTERPOLATE_COUNT 3
#define TGSI_CYLINDRICAL_WRAP_X (1 << 0)
#define TGSI_CYLINDRICAL_WRAP_Y (1 << 1)
#define TGSI_CYLINDRICAL_WRAP_Z (1 << 2)
#define TGSI_CYLINDRICAL_WRAP_W (1 << 3)
struct tgsi_declaration struct tgsi_declaration
{ {
unsigned Type : 4; /**< TGSI_TOKEN_TYPE_DECLARATION */ unsigned Type : 4; /**< TGSI_TOKEN_TYPE_DECLARATION */
@@ -113,7 +118,7 @@ struct tgsi_declaration
unsigned Semantic : 1; /**< BOOL, any semantic info? */ unsigned Semantic : 1; /**< BOOL, any semantic info? */
unsigned Centroid : 1; /**< centroid sampling? */ unsigned Centroid : 1; /**< centroid sampling? */
unsigned Invariant : 1; /**< invariant optimization? */ unsigned Invariant : 1; /**< invariant optimization? */
unsigned Padding : 4; unsigned CylindricalWrap:4; /**< TGSI_CYLINDRICAL_WRAP_x flags */
}; };
struct tgsi_declaration_range struct tgsi_declaration_range