{"verbose", AGX_DBG_VERBOSE, "Disassemble verbosely"},
{"internal", AGX_DBG_INTERNAL, "Dump even internal shaders"},
{"novalidate",AGX_DBG_NOVALIDATE,"Skip IR validation in debug builds"},
+ {"noopt", AGX_DBG_NOOPT, "Disable backend optimizations"},
DEBUG_NAMED_VALUE_END
};
if (agx_debug & AGX_DBG_SHADERS && !skip_internal)
agx_print_shader(ctx, stdout);
- agx_optimizer(ctx);
- agx_dce(ctx);
- agx_validate(ctx, "Optimization");
+ if (likely(!(agx_debug & AGX_DBG_NOOPT))) {
+ agx_optimizer(ctx);
+ agx_dce(ctx);
+ agx_validate(ctx, "Optimization");
- if (agx_debug & AGX_DBG_SHADERS && !skip_internal)
- agx_print_shader(ctx, stdout);
+ if (agx_debug & AGX_DBG_SHADERS && !skip_internal)
+ agx_print_shader(ctx, stdout);
+ }
agx_ra(ctx);
AGX_DBG_VERBOSE = BITFIELD_BIT(3),
AGX_DBG_INTERNAL = BITFIELD_BIT(4),
AGX_DBG_NOVALIDATE = BITFIELD_BIT(5),
+ AGX_DBG_NOOPT = BITFIELD_BIT(6),
};
extern int agx_debug;