/**************************************************************************
*
- * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * Copyright 2007 VMware, Inc.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* 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
+ * IN NO EVENT SHALL VMWARE 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.
struct tgsi_full_dst_register
{
struct tgsi_dst_register Register;
- struct tgsi_src_register Indirect;
+ struct tgsi_ind_register Indirect;
struct tgsi_dimension Dimension;
- struct tgsi_src_register DimIndirect;
+ struct tgsi_ind_register DimIndirect;
};
struct tgsi_full_src_register
{
struct tgsi_src_register Register;
- struct tgsi_src_register Indirect;
+ struct tgsi_ind_register Indirect;
struct tgsi_dimension Dimension;
- struct tgsi_src_register DimIndirect;
-};
-
-struct tgsi_immediate_array_data
-{
- union tgsi_immediate_data *u;
+ struct tgsi_ind_register DimIndirect;
};
struct tgsi_full_declaration
struct tgsi_declaration Declaration;
struct tgsi_declaration_range Range;
struct tgsi_declaration_dimension Dim;
+ struct tgsi_declaration_interp Interp;
struct tgsi_declaration_semantic Semantic;
- struct tgsi_immediate_array_data ImmediateData;
+ struct tgsi_declaration_image Image;
+ struct tgsi_declaration_sampler_view SamplerView;
+ struct tgsi_declaration_array Array;
};
struct tgsi_full_immediate
};
#define TGSI_FULL_MAX_DST_REGISTERS 2
-#define TGSI_FULL_MAX_SRC_REGISTERS 4 /* TXD has 4 */
+#define TGSI_FULL_MAX_SRC_REGISTERS 5 /* SAMPLE_D has 5 */
+#define TGSI_FULL_MAX_TEX_OFFSETS 4
struct tgsi_full_instruction
{
struct tgsi_instruction_predicate Predicate;
struct tgsi_instruction_label Label;
struct tgsi_instruction_texture Texture;
+ struct tgsi_instruction_memory Memory;
struct tgsi_full_dst_register Dst[TGSI_FULL_MAX_DST_REGISTERS];
struct tgsi_full_src_register Src[TGSI_FULL_MAX_SRC_REGISTERS];
+ struct tgsi_texture_offset TexOffsets[TGSI_FULL_MAX_TEX_OFFSETS];
};
union tgsi_full_token
tgsi_parse_token(
struct tgsi_parse_context *ctx );
-static INLINE unsigned
+static inline unsigned
tgsi_num_tokens(const struct tgsi_token *tokens)
{
- struct tgsi_header header = *(const struct tgsi_header *) tokens;
+ struct tgsi_header header;
+ memcpy(&header, tokens, sizeof(header));
return header.HeaderSize + header.BodySize;
}
struct tgsi_token *
tgsi_alloc_tokens(unsigned num_tokens);
+void
+tgsi_free_tokens(const struct tgsi_token *tokens);
+
+unsigned
+tgsi_get_processor_type(const struct tgsi_token *tokens);
#if defined __cplusplus
}