summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/tgsi
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/tgsi')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_dump_c.c462
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_dump_c.h49
2 files changed, 0 insertions, 511 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump_c.c b/src/gallium/auxiliary/tgsi/tgsi_dump_c.c
deleted file mode 100644
index 47fd1dd590e..00000000000
--- a/src/gallium/auxiliary/tgsi/tgsi_dump_c.c
+++ /dev/null
@@ -1,462 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2007-2008 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-
-#include "util/u_debug.h"
-#include "util/u_string.h"
-#include "tgsi_dump_c.h"
-#include "tgsi_build.h"
-#include "tgsi_info.h"
-#include "tgsi_parse.h"
-
-static void
-dump_enum(
- const unsigned e,
- const char **enums,
- const unsigned enums_count )
-{
- if (e >= enums_count) {
- debug_printf( "%u", e );
- }
- else {
- debug_printf( "%s", enums[e] );
- }
-}
-
-#define EOL() debug_printf( "\n" )
-#define TXT(S) debug_printf( "%s", S )
-#define CHR(C) debug_printf( "%c", C )
-#define UIX(I) debug_printf( "0x%x", I )
-#define UID(I) debug_printf( "%u", I )
-#define SID(I) debug_printf( "%d", I )
-#define FLT(F) debug_printf( "%10.4f", F )
-#define ENM(E,ENUMS) dump_enum( E, ENUMS, sizeof( ENUMS ) / sizeof( *ENUMS ) )
-
-static const char *TGSI_PROCESSOR_TYPES[] =
-{
- "PROCESSOR_FRAGMENT",
- "PROCESSOR_VERTEX",
- "PROCESSOR_GEOMETRY"
-};
-
-static const char *TGSI_TOKEN_TYPES[] =
-{
- "TOKEN_TYPE_DECLARATION",
- "TOKEN_TYPE_IMMEDIATE",
- "TOKEN_TYPE_INSTRUCTION"
-};
-
-static const char *TGSI_FILES[TGSI_FILE_COUNT] =
-{
- "FILE_NULL",
- "FILE_CONSTANT",
- "FILE_INPUT",
- "FILE_OUTPUT",
- "FILE_TEMPORARY",
- "FILE_SAMPLER",
- "FILE_ADDRESS",
- "FILE_IMMEDIATE",
- "FILE_LOOP",
- "FILE_PREDICATE"
-};
-
-static const char *TGSI_INTERPOLATES[] =
-{
- "INTERPOLATE_CONSTANT",
- "INTERPOLATE_LINEAR",
- "INTERPOLATE_PERSPECTIVE"
-};
-
-static const char *TGSI_SEMANTICS[] =
-{
- "SEMANTIC_POSITION",
- "SEMANTIC_COLOR",
- "SEMANTIC_BCOLOR",
- "SEMANTIC_FOG",
- "SEMANTIC_PSIZE",
- "SEMANTIC_GENERIC",
- "SEMANTIC_NORMAL"
-};
-
-static const char *TGSI_IMMS[] =
-{
- "IMM_FLOAT32"
-};
-
-static const char *TGSI_SATS[] =
-{
- "SAT_NONE",
- "SAT_ZERO_ONE",
- "SAT_MINUS_PLUS_ONE"
-};
-
-static const char *TGSI_SWIZZLES[] =
-{
- "SWIZZLE_X",
- "SWIZZLE_Y",
- "SWIZZLE_Z",
- "SWIZZLE_W"
-};
-
-static const char *TGSI_TEXTURES[] =
-{
- "TEXTURE_UNKNOWN",
- "TEXTURE_1D",
- "TEXTURE_2D",
- "TEXTURE_3D",
- "TEXTURE_CUBE",
- "TEXTURE_RECT",
- "TEXTURE_SHADOW1D",
- "TEXTURE_SHADOW2D",
- "TEXTURE_SHADOWRECT"
-};
-
-static const char *TGSI_WRITEMASKS[] =
-{
- "0",
- "WRITEMASK_X",
- "WRITEMASK_Y",
- "WRITEMASK_XY",
- "WRITEMASK_Z",
- "WRITEMASK_XZ",
- "WRITEMASK_YZ",
- "WRITEMASK_XYZ",
- "WRITEMASK_W",
- "WRITEMASK_XW",
- "WRITEMASK_YW",
- "WRITEMASK_XYW",
- "WRITEMASK_ZW",
- "WRITEMASK_XZW",
- "WRITEMASK_YZW",
- "WRITEMASK_XYZW"
-};
-
-static void
-dump_declaration_verbose(
- struct tgsi_full_declaration *decl,
- unsigned ignored,
- unsigned deflt,
- struct tgsi_full_declaration *fd )
-{
- TXT( "\nFile : " );
- ENM( decl->Declaration.File, TGSI_FILES );
- if( deflt || fd->Declaration.UsageMask != decl->Declaration.UsageMask ) {
- TXT( "\nUsageMask : " );
- if( decl->Declaration.UsageMask & TGSI_WRITEMASK_X ) {
- CHR( 'X' );
- }
- if( decl->Declaration.UsageMask & TGSI_WRITEMASK_Y ) {
- CHR( 'Y' );
- }
- if( decl->Declaration.UsageMask & TGSI_WRITEMASK_Z ) {
- CHR( 'Z' );
- }
- if( decl->Declaration.UsageMask & TGSI_WRITEMASK_W ) {
- CHR( 'W' );
- }
- }
- if( deflt || fd->Declaration.Interpolate != decl->Declaration.Interpolate ) {
- TXT( "\nInterpolate: " );
- ENM( decl->Declaration.Interpolate, TGSI_INTERPOLATES );
- }
- if( deflt || fd->Declaration.Semantic != decl->Declaration.Semantic ) {
- TXT( "\nSemantic : " );
- UID( decl->Declaration.Semantic );
- }
- if (deflt || fd->Declaration.Centroid != decl->Declaration.Centroid) {
- TXT("\nCentroid : ");
- UID(decl->Declaration.Centroid);
- }
- if (deflt || fd->Declaration.Invariant != decl->Declaration.Invariant) {
- TXT("\nInvariant : ");
- UID(decl->Declaration.Invariant);
- }
- if( ignored ) {
- TXT( "\nPadding : " );
- UIX( decl->Declaration.Padding );
- }
-
- EOL();
- TXT( "\nFirst: " );
- UID( decl->Range.First );
- TXT( "\nLast : " );
- UID( decl->Range.Last );
-
- if( decl->Declaration.Semantic ) {
- EOL();
- TXT( "\nName : " );
- ENM( decl->Semantic.Name, TGSI_SEMANTICS );
- TXT( "\nIndex: " );
- UID( decl->Semantic.Index );
- if( ignored ) {
- TXT( "\nPadding : " );
- UIX( decl->Semantic.Padding );
- }
- }
-}
-
-static void
-dump_immediate_verbose(
- struct tgsi_full_immediate *imm,
- unsigned ignored )
-{
- unsigned i;
-
- TXT( "\nDataType : " );
- ENM( imm->Immediate.DataType, TGSI_IMMS );
- if( ignored ) {
- TXT( "\nPadding : " );
- UIX( imm->Immediate.Padding );
- }
-
- assert( imm->Immediate.NrTokens <= 4 + 1 );
- for( i = 0; i < imm->Immediate.NrTokens - 1; i++ ) {
- EOL();
- switch( imm->Immediate.DataType ) {
- case TGSI_IMM_FLOAT32:
- TXT( "\nFloat: " );
- FLT( imm->u[i].Float );
- break;
-
- default:
- assert( 0 );
- }
- }
-}
-
-static void
-dump_instruction_verbose(
- struct tgsi_full_instruction *inst,
- unsigned ignored,
- unsigned deflt,
- struct tgsi_full_instruction *fi )
-{
- unsigned i;
-
- TXT( "\nOpcode : OPCODE_" );
- TXT( tgsi_get_opcode_info( inst->Instruction.Opcode )->mnemonic );
- if( deflt || fi->Instruction.Saturate != inst->Instruction.Saturate ) {
- TXT( "\nSaturate : " );
- ENM( inst->Instruction.Saturate, TGSI_SATS );
- }
- if( deflt || fi->Instruction.NumDstRegs != inst->Instruction.NumDstRegs ) {
- TXT( "\nNumDstRegs : " );
- UID( inst->Instruction.NumDstRegs );
- }
- if( deflt || fi->Instruction.NumSrcRegs != inst->Instruction.NumSrcRegs ) {
- TXT( "\nNumSrcRegs : " );
- UID( inst->Instruction.NumSrcRegs );
- }
- if (deflt || fi->Instruction.Predicate != inst->Instruction.Predicate) {
- TXT("\nPredicate : ");
- UID(inst->Instruction.Predicate);
- }
- if (deflt || fi->Instruction.Label != inst->Instruction.Label) {
- TXT("\nLabel : ");
- UID(inst->Instruction.Label);
- }
- if (deflt || fi->Instruction.Texture != inst->Instruction.Texture) {
- TXT("\nTexture : ");
- UID(inst->Instruction.Texture);
- }
- if( ignored ) {
- TXT( "\nPadding : " );
- UIX( inst->Instruction.Padding );
- }
-
- if (deflt || inst->Instruction.Label) {
- EOL();
- if (deflt || fi->Label.Label != inst->Label.Label) {
- TXT( "\nLabel : " );
- UID(inst->Label.Label);
- }
- if( ignored ) {
- TXT( "\nPadding : " );
- UIX(inst->Label.Padding);
- }
- }
-
- if (deflt || inst->Instruction.Texture) {
- EOL();
- if (deflt || fi->Texture.Texture != inst->Texture.Texture) {
- TXT( "\nTexture : " );
- ENM(inst->Texture.Texture, TGSI_TEXTURES);
- }
- if( ignored ) {
- TXT( "\nPadding : " );
- UIX(inst->Texture.Padding);
- }
- }
-
- for( i = 0; i < inst->Instruction.NumDstRegs; i++ ) {
- struct tgsi_full_dst_register *dst = &inst->Dst[i];
- struct tgsi_full_dst_register *fd = &fi->Dst[i];
-
- EOL();
- TXT( "\nFile : " );
- ENM( dst->Register.File, TGSI_FILES );
- if( deflt || fd->Register.WriteMask != dst->Register.WriteMask ) {
- TXT( "\nWriteMask: " );
- ENM( dst->Register.WriteMask, TGSI_WRITEMASKS );
- }
- if( ignored ) {
- if( deflt || fd->Register.Indirect != dst->Register.Indirect ) {
- TXT( "\nIndirect : " );
- UID( dst->Register.Indirect );
- }
- if( deflt || fd->Register.Dimension != dst->Register.Dimension ) {
- TXT( "\nDimension: " );
- UID( dst->Register.Dimension );
- }
- }
- if( deflt || fd->Register.Index != dst->Register.Index ) {
- TXT( "\nIndex : " );
- SID( dst->Register.Index );
- }
- if( ignored ) {
- TXT( "\nPadding : " );
- UIX( dst->Register.Padding );
- }
- }
-
- for( i = 0; i < inst->Instruction.NumSrcRegs; i++ ) {
- struct tgsi_full_src_register *src = &inst->Src[i];
- struct tgsi_full_src_register *fs = &fi->Src[i];
-
- EOL();
- TXT( "\nFile : ");
- ENM( src->Register.File, TGSI_FILES );
- if( deflt || fs->Register.SwizzleX != src->Register.SwizzleX ) {
- TXT( "\nSwizzleX : " );
- ENM( src->Register.SwizzleX, TGSI_SWIZZLES );
- }
- if( deflt || fs->Register.SwizzleY != src->Register.SwizzleY ) {
- TXT( "\nSwizzleY : " );
- ENM( src->Register.SwizzleY, TGSI_SWIZZLES );
- }
- if( deflt || fs->Register.SwizzleZ != src->Register.SwizzleZ ) {
- TXT( "\nSwizzleZ : " );
- ENM( src->Register.SwizzleZ, TGSI_SWIZZLES );
- }
- if( deflt || fs->Register.SwizzleW != src->Register.SwizzleW ) {
- TXT( "\nSwizzleW : " );
- ENM( src->Register.SwizzleW, TGSI_SWIZZLES );
- }
- if (deflt || fs->Register.Absolute != src->Register.Absolute) {
- TXT("\nAbsolute : ");
- UID(src->Register.Absolute);
- }
- if( deflt || fs->Register.Negate != src->Register.Negate ) {
- TXT( "\nNegate : " );
- UID( src->Register.Negate );
- }
- if( ignored ) {
- if( deflt || fs->Register.Indirect != src->Register.Indirect ) {
- TXT( "\nIndirect : " );
- UID( src->Register.Indirect );
- }
- if( deflt || fs->Register.Dimension != src->Register.Dimension ) {
- TXT( "\nDimension: " );
- UID( src->Register.Dimension );
- }
- }
- if( deflt || fs->Register.Index != src->Register.Index ) {
- TXT( "\nIndex : " );
- SID( src->Register.Index );
- }
- }
-}
-
-void
-tgsi_dump_c(
- const struct tgsi_token *tokens,
- uint flags )
-{
- struct tgsi_parse_context parse;
- struct tgsi_full_instruction fi;
- struct tgsi_full_declaration fd;
- uint ignored = flags & TGSI_DUMP_C_IGNORED;
- uint deflt = flags & TGSI_DUMP_C_DEFAULT;
-
- tgsi_parse_init( &parse, tokens );
-
- TXT( "tgsi-dump begin -----------------" );
-
- TXT( "\nHeaderSize: " );
- UID( parse.FullHeader.Header.HeaderSize );
- TXT( "\nBodySize : " );
- UID( parse.FullHeader.Header.BodySize );
- TXT( "\nProcessor : " );
- ENM( parse.FullHeader.Processor.Processor, TGSI_PROCESSOR_TYPES );
- EOL();
-
- fi = tgsi_default_full_instruction();
- fd = tgsi_default_full_declaration();
-
- while( !tgsi_parse_end_of_tokens( &parse ) ) {
- tgsi_parse_token( &parse );
-
- TXT( "\nType : " );
- ENM( parse.FullToken.Token.Type, TGSI_TOKEN_TYPES );
- if( ignored ) {
- TXT( "\nSize : " );
- UID( parse.FullToken.Token.NrTokens );
- }
-
- switch( parse.FullToken.Token.Type ) {
- case TGSI_TOKEN_TYPE_DECLARATION:
- dump_declaration_verbose(
- &parse.FullToken.FullDeclaration,
- ignored,
- deflt,
- &fd );
- break;
-
- case TGSI_TOKEN_TYPE_IMMEDIATE:
- dump_immediate_verbose(
- &parse.FullToken.FullImmediate,
- ignored );
- break;
-
- case TGSI_TOKEN_TYPE_INSTRUCTION:
- dump_instruction_verbose(
- &parse.FullToken.FullInstruction,
- ignored,
- deflt,
- &fi );
- break;
-
- default:
- assert( 0 );
- }
-
- EOL();
- }
-
- TXT( "\ntgsi-dump end -------------------\n" );
-
- tgsi_parse_free( &parse );
-}
diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump_c.h b/src/gallium/auxiliary/tgsi/tgsi_dump_c.h
deleted file mode 100644
index d91cd35b3b7..00000000000
--- a/src/gallium/auxiliary/tgsi/tgsi_dump_c.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2007-2008 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-
-#ifndef TGSI_DUMP_C_H
-#define TGSI_DUMP_C_H
-
-#include "pipe/p_shader_tokens.h"
-
-#if defined __cplusplus
-extern "C" {
-#endif
-
-#define TGSI_DUMP_C_IGNORED 1
-#define TGSI_DUMP_C_DEFAULT 2
-
-void
-tgsi_dump_c(
- const struct tgsi_token *tokens,
- uint flags );
-
-#if defined __cplusplus
-}
-#endif
-
-#endif /* TGSI_DUMP_C_H */