glsl/standalone: exit on unsupported texture functions
glsl/standalone with --dump-builder will exit when unsupported texture functions are encountered. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107767 Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com> Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
This commit is contained in:
parent
ea5b7de138
commit
9f85b4940c
|
@ -60,6 +60,8 @@ public:
|
|||
virtual ir_visitor_status visit_leave(class ir_swizzle *);
|
||||
virtual ir_visitor_status visit_leave(class ir_return *);
|
||||
|
||||
virtual ir_visitor_status visit_enter(ir_texture *ir);
|
||||
|
||||
private:
|
||||
void print_with_indent(const char *fmt, ...);
|
||||
void print_without_indent(const char *fmt, ...);
|
||||
|
@ -445,6 +447,7 @@ ir_builder_print_visitor::print_without_declaration(const ir_swizzle *ir)
|
|||
print_without_declaration(ir->val);
|
||||
print_without_indent(")");
|
||||
} else {
|
||||
assert(he);
|
||||
print_without_indent("swizzle_%c(r%04X)",
|
||||
swiz[ir->mask.x],
|
||||
(unsigned)(uintptr_t) he->data);
|
||||
|
@ -452,6 +455,7 @@ ir_builder_print_visitor::print_without_declaration(const ir_swizzle *ir)
|
|||
} else {
|
||||
static const char swiz[4] = { 'X', 'Y', 'Z', 'W' };
|
||||
|
||||
assert(he);
|
||||
print_without_indent("swizzle(r%04X, MAKE_SWIZZLE4(SWIZZLE_%c, SWIZZLE_%c, SWIZZLE_%c, SWIZZLE_%c), %u)",
|
||||
(unsigned)(uintptr_t) he->data,
|
||||
swiz[ir->mask.x],
|
||||
|
@ -526,6 +530,7 @@ ir_builder_print_visitor::visit_leave(ir_assignment *ir)
|
|||
_mesa_hash_table_search(index_map, ir->rhs);
|
||||
|
||||
assert(ir->condition == NULL);
|
||||
assert(ir->lhs && ir->rhs);
|
||||
|
||||
print_with_indent("body.emit(assign(r%04X, r%04X, 0x%02x));\n\n",
|
||||
(unsigned)(uintptr_t) he_lhs->data,
|
||||
|
@ -640,7 +645,7 @@ ir_builder_print_visitor::visit_enter(ir_if *ir)
|
|||
if (s != visit_continue_with_parent) {
|
||||
s = visit_list_elements(this, &ir->then_instructions);
|
||||
if (s == visit_stop)
|
||||
return s;
|
||||
return s;
|
||||
}
|
||||
|
||||
print_without_indent("\n");
|
||||
|
@ -682,6 +687,14 @@ ir_builder_print_visitor::visit_leave(ir_return *ir)
|
|||
return visit_continue;
|
||||
}
|
||||
|
||||
ir_visitor_status
|
||||
ir_builder_print_visitor::visit_enter(ir_texture *ir)
|
||||
{
|
||||
print_with_indent("\nUnsupported IR is encountered: texture functions are not supported. Exiting.\n");
|
||||
|
||||
return visit_stop;
|
||||
}
|
||||
|
||||
ir_visitor_status
|
||||
ir_builder_print_visitor::visit_leave(ir_call *ir)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue