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_build.c88
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_dump.c22
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.c14
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.h3
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_info.c7
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h6
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_parse.c4
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_parse.h1
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_strings.c3
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_text.c32
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_ureg.c88
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_ureg.h14
12 files changed, 175 insertions, 107 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_build.c b/src/gallium/auxiliary/tgsi/tgsi_build.c
index 6ec2b0d8f21..6c3f77581f0 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_build.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_build.c
@@ -227,42 +227,66 @@ tgsi_build_declaration_semantic(
return ds;
}
-
static struct tgsi_declaration_resource
tgsi_default_declaration_resource(void)
{
- struct tgsi_declaration_resource declaration_resource;
+ struct tgsi_declaration_resource dr;
- declaration_resource.Resource = TGSI_TEXTURE_UNKNOWN;
- declaration_resource.ReturnTypeX = PIPE_TYPE_UNORM;
- declaration_resource.ReturnTypeY = PIPE_TYPE_UNORM;
- declaration_resource.ReturnTypeZ = PIPE_TYPE_UNORM;
- declaration_resource.ReturnTypeW = PIPE_TYPE_UNORM;
+ dr.Resource = TGSI_BUFFER;
- return declaration_resource;
+ return dr;
}
static struct tgsi_declaration_resource
tgsi_build_declaration_resource(unsigned texture,
- unsigned return_type_x,
- unsigned return_type_y,
- unsigned return_type_z,
- unsigned return_type_w,
struct tgsi_declaration *declaration,
struct tgsi_header *header)
{
- struct tgsi_declaration_resource declaration_resource;
+ struct tgsi_declaration_resource dr;
+
+ dr = tgsi_default_declaration_resource();
+ dr.Resource = texture;
+
+ declaration_grow(declaration, header);
+
+ return dr;
+}
+
+static struct tgsi_declaration_sampler_view
+tgsi_default_declaration_sampler_view(void)
+{
+ struct tgsi_declaration_sampler_view dsv;
+
+ dsv.Resource = TGSI_BUFFER;
+ dsv.ReturnTypeX = PIPE_TYPE_UNORM;
+ dsv.ReturnTypeY = PIPE_TYPE_UNORM;
+ dsv.ReturnTypeZ = PIPE_TYPE_UNORM;
+ dsv.ReturnTypeW = PIPE_TYPE_UNORM;
+
+ return dsv;
+}
+
+static struct tgsi_declaration_sampler_view
+tgsi_build_declaration_sampler_view(unsigned texture,
+ unsigned return_type_x,
+ unsigned return_type_y,
+ unsigned return_type_z,
+ unsigned return_type_w,
+ struct tgsi_declaration *declaration,
+ struct tgsi_header *header)
+{
+ struct tgsi_declaration_sampler_view dsv;
- declaration_resource = tgsi_default_declaration_resource();
- declaration_resource.Resource = texture;
- declaration_resource.ReturnTypeX = return_type_x;
- declaration_resource.ReturnTypeY = return_type_y;
- declaration_resource.ReturnTypeZ = return_type_z;
- declaration_resource.ReturnTypeW = return_type_w;
+ dsv = tgsi_default_declaration_sampler_view();
+ dsv.Resource = texture;
+ dsv.ReturnTypeX = return_type_x;
+ dsv.ReturnTypeY = return_type_y;
+ dsv.ReturnTypeZ = return_type_z;
+ dsv.ReturnTypeW = return_type_w;
declaration_grow(declaration, header);
- return declaration_resource;
+ return dsv;
}
@@ -276,6 +300,7 @@ tgsi_default_full_declaration( void )
full_declaration.Semantic = tgsi_default_declaration_semantic();
full_declaration.ImmediateData.u = NULL;
full_declaration.Resource = tgsi_default_declaration_resource();
+ full_declaration.SamplerView = tgsi_default_declaration_sampler_view();
return full_declaration;
}
@@ -375,14 +400,29 @@ tgsi_build_full_declaration(
size++;
*dr = tgsi_build_declaration_resource(full_decl->Resource.Resource,
- full_decl->Resource.ReturnTypeX,
- full_decl->Resource.ReturnTypeY,
- full_decl->Resource.ReturnTypeZ,
- full_decl->Resource.ReturnTypeW,
declaration,
header);
}
+ if (full_decl->Declaration.File == TGSI_FILE_SAMPLER_VIEW) {
+ struct tgsi_declaration_sampler_view *dsv;
+
+ if (maxsize <= size) {
+ return 0;
+ }
+ dsv = (struct tgsi_declaration_sampler_view *)&tokens[size];
+ size++;
+
+ *dsv = tgsi_build_declaration_sampler_view(
+ full_decl->SamplerView.Resource,
+ full_decl->SamplerView.ReturnTypeX,
+ full_decl->SamplerView.ReturnTypeY,
+ full_decl->SamplerView.ReturnTypeZ,
+ full_decl->SamplerView.ReturnTypeW,
+ declaration,
+ header);
+ }
+
return size;
}
diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c
index 635212b7e86..f20a1943b52 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_dump.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_dump.c
@@ -285,21 +285,25 @@ iter_declaration(
if (decl->Declaration.File == TGSI_FILE_RESOURCE) {
TXT(", ");
ENM(decl->Resource.Resource, tgsi_texture_names);
+ }
+
+ if (decl->Declaration.File == TGSI_FILE_SAMPLER_VIEW) {
TXT(", ");
- if ((decl->Resource.ReturnTypeX == decl->Resource.ReturnTypeY) &&
- (decl->Resource.ReturnTypeX == decl->Resource.ReturnTypeZ) &&
- (decl->Resource.ReturnTypeX == decl->Resource.ReturnTypeW)) {
- ENM(decl->Resource.ReturnTypeX, tgsi_type_names);
+ ENM(decl->SamplerView.Resource, tgsi_texture_names);
+ TXT(", ");
+ if ((decl->SamplerView.ReturnTypeX == decl->SamplerView.ReturnTypeY) &&
+ (decl->SamplerView.ReturnTypeX == decl->SamplerView.ReturnTypeZ) &&
+ (decl->SamplerView.ReturnTypeX == decl->SamplerView.ReturnTypeW)) {
+ ENM(decl->SamplerView.ReturnTypeX, tgsi_type_names);
} else {
- ENM(decl->Resource.ReturnTypeX, tgsi_type_names);
+ ENM(decl->SamplerView.ReturnTypeX, tgsi_type_names);
TXT(", ");
- ENM(decl->Resource.ReturnTypeY, tgsi_type_names);
+ ENM(decl->SamplerView.ReturnTypeY, tgsi_type_names);
TXT(", ");
- ENM(decl->Resource.ReturnTypeZ, tgsi_type_names);
+ ENM(decl->SamplerView.ReturnTypeZ, tgsi_type_names);
TXT(", ");
- ENM(decl->Resource.ReturnTypeW, tgsi_type_names);
+ ENM(decl->SamplerView.ReturnTypeW, tgsi_type_names);
}
-
}
if (iter->processor.Processor == TGSI_PROCESSOR_FRAGMENT &&
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index c4ad34b1e61..20bbe407caf 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -2121,7 +2121,7 @@ exec_sample(struct tgsi_exec_machine *mach,
control = tgsi_sampler_lod_bias;
}
- switch (mach->Resources[resource_unit].Resource) {
+ switch (mach->SamplerViews[resource_unit].Resource) {
case TGSI_TEXTURE_1D:
case TGSI_TEXTURE_SHADOW1D:
FETCH(&r[0], 0, TGSI_CHAN_X);
@@ -2215,7 +2215,7 @@ exec_sample_d(struct tgsi_exec_machine *mach,
* XXX: This is fake SAMPLE_D -- the derivatives are not taken into account, yet.
*/
- switch (mach->Resources[resource_unit].Resource) {
+ switch (mach->SamplerViews[resource_unit].Resource) {
case TGSI_TEXTURE_1D:
case TGSI_TEXTURE_SHADOW1D:
@@ -2338,8 +2338,8 @@ static void
exec_declaration(struct tgsi_exec_machine *mach,
const struct tgsi_full_declaration *decl)
{
- if (decl->Declaration.File == TGSI_FILE_RESOURCE) {
- mach->Resources[decl->Range.First] = decl->Resource;
+ if (decl->Declaration.File == TGSI_FILE_SAMPLER_VIEW) {
+ mach->SamplerViews[decl->Range.First] = decl->SamplerView;
return;
}
@@ -4154,11 +4154,11 @@ exec_instruction(
exec_endswitch(mach);
break;
- case TGSI_OPCODE_LOAD:
+ case TGSI_OPCODE_SAMPLE_I:
assert(0);
break;
- case TGSI_OPCODE_LOAD_MS:
+ case TGSI_OPCODE_SAMPLE_I_MS:
assert(0);
break;
@@ -4190,7 +4190,7 @@ exec_instruction(
assert(0);
break;
- case TGSI_OPCODE_RESINFO:
+ case TGSI_OPCODE_SVIEWINFO:
assert(0);
break;
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.h b/src/gallium/auxiliary/tgsi/tgsi_exec.h
index d9e93ce138d..0ecb4e952bb 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.h
@@ -331,7 +331,8 @@ struct tgsi_exec_machine
struct tgsi_full_declaration *Declarations;
uint NumDeclarations;
- struct tgsi_declaration_resource Resources[PIPE_MAX_SHADER_RESOURCES];
+ struct tgsi_declaration_sampler_view
+ SamplerViews[PIPE_MAX_SHADER_SAMPLER_VIEWS];
boolean UsedGeometryShader;
};
diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c b/src/gallium/auxiliary/tgsi/tgsi_info.c
index 81df96b3c7a..c41288f6588 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_info.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_info.c
@@ -183,22 +183,23 @@ static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] =
{ 0, 0, 0, 0, 0, 0, NONE, "DEFAULT", TGSI_OPCODE_DEFAULT },
{ 0, 0, 0, 0, 0, 0, NONE, "ENDSWITCH", TGSI_OPCODE_ENDSWITCH },
- { 1, 2, 0, 0, 0, 0, OTHR, "LOAD", TGSI_OPCODE_LOAD },
- { 1, 2, 0, 0, 0, 0, OTHR, "LOAD_MS", TGSI_OPCODE_LOAD_MS },
{ 1, 3, 0, 0, 0, 0, OTHR, "SAMPLE", TGSI_OPCODE_SAMPLE },
+ { 1, 2, 0, 0, 0, 0, OTHR, "SAMPLE_I", TGSI_OPCODE_SAMPLE_I },
+ { 1, 2, 0, 0, 0, 0, OTHR, "SAMPLE_I_MS", TGSI_OPCODE_SAMPLE_I_MS },
{ 1, 4, 0, 0, 0, 0, OTHR, "SAMPLE_B", TGSI_OPCODE_SAMPLE_B },
{ 1, 4, 0, 0, 0, 0, OTHR, "SAMPLE_C", TGSI_OPCODE_SAMPLE_C },
{ 1, 4, 0, 0, 0, 0, OTHR, "SAMPLE_C_LZ", TGSI_OPCODE_SAMPLE_C_LZ },
{ 1, 5, 0, 0, 0, 0, OTHR, "SAMPLE_D", TGSI_OPCODE_SAMPLE_D },
{ 1, 3, 0, 0, 0, 0, OTHR, "SAMPLE_L", TGSI_OPCODE_SAMPLE_L },
{ 1, 3, 0, 0, 0, 0, OTHR, "GATHER4", TGSI_OPCODE_GATHER4 },
- { 1, 2, 0, 0, 0, 0, OTHR, "RESINFO", TGSI_OPCODE_RESINFO },
+ { 1, 2, 0, 0, 0, 0, OTHR, "SVIEWINFO", TGSI_OPCODE_SVIEWINFO },
{ 1, 2, 0, 0, 0, 0, OTHR, "SAMPLE_POS", TGSI_OPCODE_SAMPLE_POS },
{ 1, 2, 0, 0, 0, 0, OTHR, "SAMPLE_INFO", TGSI_OPCODE_SAMPLE_INFO },
{ 1, 1, 0, 0, 0, 0, COMP, "UARL", TGSI_OPCODE_UARL },
{ 1, 3, 0, 0, 0, 0, COMP, "UCMP", TGSI_OPCODE_UCMP },
{ 1, 1, 0, 0, 0, 0, COMP, "IABS", TGSI_OPCODE_IABS },
{ 1, 1, 0, 0, 0, 0, COMP, "ISSG", TGSI_OPCODE_ISSG },
+ { 1, 2, 0, 0, 0, 0, OTHR, "LOAD", TGSI_OPCODE_LOAD },
};
const struct tgsi_opcode_info *
diff --git a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
index b5d4504425b..96b864f50d0 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h
@@ -168,16 +168,16 @@ OP01(CASE)
OP00(DEFAULT)
OP00(ENDSWITCH)
-OP12(LOAD)
-OP12(LOAD_MS)
OP13(SAMPLE)
+OP12(SAMPLE_I)
+OP12(SAMPLE_I_MS)
OP14(SAMPLE_B)
OP14(SAMPLE_C)
OP14(SAMPLE_C_LZ)
OP15(SAMPLE_D)
OP13(SAMPLE_L)
OP13(GATHER4)
-OP12(RESINFO)
+OP12(SVIEWINFO)
OP13(SAMPLE_POS)
OP12(SAMPLE_INFO)
diff --git a/src/gallium/auxiliary/tgsi/tgsi_parse.c b/src/gallium/auxiliary/tgsi/tgsi_parse.c
index e1902eb1862..67d138914e7 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_parse.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_parse.c
@@ -132,6 +132,10 @@ tgsi_parse_token(
next_token(ctx, &decl->Resource);
}
+ if (decl->Declaration.File == TGSI_FILE_SAMPLER_VIEW) {
+ next_token(ctx, &decl->SamplerView);
+ }
+
break;
}
diff --git a/src/gallium/auxiliary/tgsi/tgsi_parse.h b/src/gallium/auxiliary/tgsi/tgsi_parse.h
index f7b7e6edc98..3dce222565b 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_parse.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_parse.h
@@ -70,6 +70,7 @@ struct tgsi_full_declaration
struct tgsi_declaration_semantic Semantic;
struct tgsi_immediate_array_data ImmediateData;
struct tgsi_declaration_resource Resource;
+ struct tgsi_declaration_sampler_view SamplerView;
};
struct tgsi_full_immediate
diff --git a/src/gallium/auxiliary/tgsi/tgsi_strings.c b/src/gallium/auxiliary/tgsi/tgsi_strings.c
index 520452ce1b8..626ff6ffde5 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_strings.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_strings.c
@@ -53,7 +53,8 @@ const char *tgsi_file_names[TGSI_FILE_COUNT] =
"SV",
"IMMX",
"TEMPX",
- "RES"
+ "RES",
+ "SVIEW"
};
const char *tgsi_semantic_names[TGSI_SEMANTIC_COUNT] =
diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
index 4b3d22c3072..cec9cd36a55 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_text.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
@@ -1066,6 +1066,22 @@ static boolean parse_declaration( struct translate_ctx *ctx )
report_error(ctx, "Expected texture target");
return FALSE;
}
+
+ ctx->cur = cur;
+
+ } else if (file == TGSI_FILE_SAMPLER_VIEW) {
+ for (i = 0; i < TGSI_TEXTURE_COUNT; i++) {
+ if (str_match_no_case(&cur, tgsi_texture_names[i])) {
+ if (!is_digit_alpha_underscore(cur)) {
+ decl.SamplerView.Resource = i;
+ break;
+ }
+ }
+ }
+ if (i == TGSI_TEXTURE_COUNT) {
+ report_error(ctx, "Expected texture target");
+ return FALSE;
+ }
eat_opt_white( &cur );
if (*cur != ',') {
report_error( ctx, "Expected `,'" );
@@ -1079,16 +1095,16 @@ static boolean parse_declaration( struct translate_ctx *ctx )
if (!is_digit_alpha_underscore(cur)) {
switch (j) {
case 0:
- decl.Resource.ReturnTypeX = i;
+ decl.SamplerView.ReturnTypeX = i;
break;
case 1:
- decl.Resource.ReturnTypeY = i;
+ decl.SamplerView.ReturnTypeY = i;
break;
case 2:
- decl.Resource.ReturnTypeZ = i;
+ decl.SamplerView.ReturnTypeZ = i;
break;
case 3:
- decl.Resource.ReturnTypeW = i;
+ decl.SamplerView.ReturnTypeW = i;
break;
default:
assert(0);
@@ -1116,10 +1132,10 @@ static boolean parse_declaration( struct translate_ctx *ctx )
}
}
if (j < 4) {
- decl.Resource.ReturnTypeY =
- decl.Resource.ReturnTypeZ =
- decl.Resource.ReturnTypeW =
- decl.Resource.ReturnTypeX;
+ decl.SamplerView.ReturnTypeY =
+ decl.SamplerView.ReturnTypeZ =
+ decl.SamplerView.ReturnTypeW =
+ decl.SamplerView.ReturnTypeX;
}
ctx->cur = cur;
} else {
diff --git a/src/gallium/auxiliary/tgsi/tgsi_ureg.c b/src/gallium/auxiliary/tgsi/tgsi_ureg.c
index 0f9aa3ab43a..496b31a5d13 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_ureg.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_ureg.c
@@ -47,7 +47,7 @@ union tgsi_any_token {
struct tgsi_declaration_range decl_range;
struct tgsi_declaration_dimension decl_dim;
struct tgsi_declaration_semantic decl_semantic;
- struct tgsi_declaration_resource decl_resource;
+ struct tgsi_declaration_sampler_view decl_sampler_view;
struct tgsi_immediate imm;
union tgsi_immediate_data imm_data;
struct tgsi_instruction insn;
@@ -147,8 +147,8 @@ struct ureg_program
unsigned return_type_y;
unsigned return_type_z;
unsigned return_type_w;
- } resource[PIPE_MAX_SHADER_RESOURCES];
- unsigned nr_resources;
+ } sampler_view[PIPE_MAX_SHADER_SAMPLER_VIEWS];
+ unsigned nr_sampler_views;
unsigned temps_active[UREG_MAX_TEMP / 32];
unsigned nr_temps;
@@ -615,34 +615,34 @@ struct ureg_src ureg_DECL_sampler( struct ureg_program *ureg,
}
/*
- * Allocate a new shader resource.
+ * Allocate a new shader sampler view.
*/
struct ureg_src
-ureg_DECL_resource(struct ureg_program *ureg,
- unsigned index,
- unsigned target,
- unsigned return_type_x,
- unsigned return_type_y,
- unsigned return_type_z,
- unsigned return_type_w)
+ureg_DECL_sampler_view(struct ureg_program *ureg,
+ unsigned index,
+ unsigned target,
+ unsigned return_type_x,
+ unsigned return_type_y,
+ unsigned return_type_z,
+ unsigned return_type_w)
{
- struct ureg_src reg = ureg_src_register(TGSI_FILE_RESOURCE, index);
+ struct ureg_src reg = ureg_src_register(TGSI_FILE_SAMPLER_VIEW, index);
uint i;
- for (i = 0; i < ureg->nr_resources; i++) {
- if (ureg->resource[i].index == index) {
+ for (i = 0; i < ureg->nr_sampler_views; i++) {
+ if (ureg->sampler_view[i].index == index) {
return reg;
}
}
- if (i < PIPE_MAX_SHADER_RESOURCES) {
- ureg->resource[i].index = index;
- ureg->resource[i].target = target;
- ureg->resource[i].return_type_x = return_type_x;
- ureg->resource[i].return_type_y = return_type_y;
- ureg->resource[i].return_type_z = return_type_z;
- ureg->resource[i].return_type_w = return_type_w;
- ureg->nr_resources++;
+ if (i < PIPE_MAX_SHADER_SAMPLER_VIEWS) {
+ ureg->sampler_view[i].index = index;
+ ureg->sampler_view[i].target = target;
+ ureg->sampler_view[i].return_type_x = return_type_x;
+ ureg->sampler_view[i].return_type_y = return_type_y;
+ ureg->sampler_view[i].return_type_z = return_type_z;
+ ureg->sampler_view[i].return_type_w = return_type_w;
+ ureg->nr_sampler_views++;
return reg;
}
@@ -891,7 +891,7 @@ ureg_emit_dst( struct ureg_program *ureg,
assert(dst.File != TGSI_FILE_CONSTANT);
assert(dst.File != TGSI_FILE_INPUT);
assert(dst.File != TGSI_FILE_SAMPLER);
- assert(dst.File != TGSI_FILE_RESOURCE);
+ assert(dst.File != TGSI_FILE_SAMPLER_VIEW);
assert(dst.File != TGSI_FILE_IMMEDIATE);
assert(dst.File < TGSI_FILE_COUNT);
@@ -1297,20 +1297,20 @@ emit_decl_range2D(struct ureg_program *ureg,
}
static void
-emit_decl_resource(struct ureg_program *ureg,
- unsigned index,
- unsigned target,
- unsigned return_type_x,
- unsigned return_type_y,
- unsigned return_type_z,
- unsigned return_type_w )
+emit_decl_sampler_view(struct ureg_program *ureg,
+ unsigned index,
+ unsigned target,
+ unsigned return_type_x,
+ unsigned return_type_y,
+ unsigned return_type_z,
+ unsigned return_type_w )
{
union tgsi_any_token *out = get_tokens(ureg, DOMAIN_DECL, 3);
out[0].value = 0;
out[0].decl.Type = TGSI_TOKEN_TYPE_DECLARATION;
out[0].decl.NrTokens = 3;
- out[0].decl.File = TGSI_FILE_RESOURCE;
+ out[0].decl.File = TGSI_FILE_SAMPLER_VIEW;
out[0].decl.UsageMask = 0xf;
out[0].decl.Interpolate = TGSI_INTERPOLATE_CONSTANT;
@@ -1319,11 +1319,11 @@ emit_decl_resource(struct ureg_program *ureg,
out[1].decl_range.Last = index;
out[2].value = 0;
- out[2].decl_resource.Resource = target;
- out[2].decl_resource.ReturnTypeX = return_type_x;
- out[2].decl_resource.ReturnTypeY = return_type_y;
- out[2].decl_resource.ReturnTypeZ = return_type_z;
- out[2].decl_resource.ReturnTypeW = return_type_w;
+ out[2].decl_sampler_view.Resource = target;
+ out[2].decl_sampler_view.ReturnTypeX = return_type_x;
+ out[2].decl_sampler_view.ReturnTypeY = return_type_y;
+ out[2].decl_sampler_view.ReturnTypeZ = return_type_z;
+ out[2].decl_sampler_view.ReturnTypeW = return_type_w;
}
static void
@@ -1473,14 +1473,14 @@ static void emit_decls( struct ureg_program *ureg )
ureg->sampler[i].Index, 1 );
}
- for (i = 0; i < ureg->nr_resources; i++) {
- emit_decl_resource(ureg,
- ureg->resource[i].index,
- ureg->resource[i].target,
- ureg->resource[i].return_type_x,
- ureg->resource[i].return_type_y,
- ureg->resource[i].return_type_z,
- ureg->resource[i].return_type_w);
+ for (i = 0; i < ureg->nr_sampler_views; i++) {
+ emit_decl_sampler_view(ureg,
+ ureg->sampler_view[i].index,
+ ureg->sampler_view[i].target,
+ ureg->sampler_view[i].return_type_x,
+ ureg->sampler_view[i].return_type_y,
+ ureg->sampler_view[i].return_type_z,
+ ureg->sampler_view[i].return_type_w);
}
if (ureg->const_decls.nr_constant_ranges) {
diff --git a/src/gallium/auxiliary/tgsi/tgsi_ureg.h b/src/gallium/auxiliary/tgsi/tgsi_ureg.h
index 07ab8cba0ba..b1297a25a94 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_ureg.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_ureg.h
@@ -292,13 +292,13 @@ ureg_DECL_sampler( struct ureg_program *,
unsigned index );
struct ureg_src
-ureg_DECL_resource(struct ureg_program *,
- unsigned index,
- unsigned target,
- unsigned return_type_x,
- unsigned return_type_y,
- unsigned return_type_z,
- unsigned return_type_w );
+ureg_DECL_sampler_view(struct ureg_program *,
+ unsigned index,
+ unsigned target,
+ unsigned return_type_x,
+ unsigned return_type_y,
+ unsigned return_type_z,
+ unsigned return_type_w );
static INLINE struct ureg_src