X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fr300%2Fr300_tgsi_to_rc.h;h=21f35e15ca272803f180726e3f062a2250e28458;hb=3c265c258685a987acd2430877facf5fe859cd89;hp=93e90ec6d2cc1ef1793ed4db0ea3d15a3261d05e;hpb=73fc09a7bf5c63b595251dc10997891c72ecb119;p=mesa.git diff --git a/src/gallium/drivers/r300/r300_tgsi_to_rc.h b/src/gallium/drivers/r300/r300_tgsi_to_rc.h index 93e90ec6d2c..21f35e15ca2 100644 --- a/src/gallium/drivers/r300/r300_tgsi_to_rc.h +++ b/src/gallium/drivers/r300/r300_tgsi_to_rc.h @@ -23,17 +23,33 @@ #ifndef R300_TGSI_TO_RC_H #define R300_TGSI_TO_RC_H +#include "pipe/p_compiler.h" + struct radeon_compiler; struct tgsi_full_declaration; struct tgsi_shader_info; struct tgsi_token; +struct swizzled_imms { + unsigned index; + unsigned swizzle; +}; + struct tgsi_to_rc { struct radeon_compiler * compiler; const struct tgsi_shader_info * info; int immediate_offset; + struct swizzled_imms * imms_to_swizzle; + unsigned imms_to_swizzle_count; + + /* Vertex shaders have no half swizzles, and no way to handle them, so + * until rc grows proper support, indicate if they're safe to use. */ + boolean use_half_swizzles; + + /* If an error occurred. */ + boolean error; }; void r300_tgsi_to_rc(struct tgsi_to_rc * ttr, const struct tgsi_token * tokens);