mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-29 22:30:24 +01:00
gallium/radeon: r600_can_dump_shader should get TGSI processor type directly
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
fd7000bd78
commit
cd7f252b11
4 changed files with 10 additions and 15 deletions
|
|
@ -162,7 +162,8 @@ int r600_pipe_shader_create(struct pipe_context *ctx,
|
|||
struct r600_context *rctx = (struct r600_context *)ctx;
|
||||
struct r600_pipe_shader_selector *sel = shader->selector;
|
||||
int r;
|
||||
bool dump = r600_can_dump_shader(&rctx->screen->b, sel->tokens);
|
||||
bool dump = r600_can_dump_shader(&rctx->screen->b,
|
||||
tgsi_get_processor_type(sel->tokens));
|
||||
unsigned use_sb = !(rctx->screen->b.debug_flags & DBG_NO_SB);
|
||||
unsigned sb_disasm = use_sb || (rctx->screen->b.debug_flags & DBG_SB_DISASM);
|
||||
unsigned export_shader;
|
||||
|
|
@ -3238,7 +3239,8 @@ static int r600_shader_from_tgsi(struct r600_context *rctx,
|
|||
if (use_llvm) {
|
||||
struct radeon_llvm_context radeon_llvm_ctx;
|
||||
LLVMModuleRef mod;
|
||||
bool dump = r600_can_dump_shader(&rscreen->b, tokens);
|
||||
bool dump = r600_can_dump_shader(&rscreen->b,
|
||||
tgsi_get_processor_type(tokens));
|
||||
boolean use_kill = false;
|
||||
|
||||
memset(&radeon_llvm_ctx, 0, sizeof(radeon_llvm_ctx));
|
||||
|
|
|
|||
|
|
@ -1011,13 +1011,9 @@ void r600_destroy_common_screen(struct r600_common_screen *rscreen)
|
|||
}
|
||||
|
||||
bool r600_can_dump_shader(struct r600_common_screen *rscreen,
|
||||
const struct tgsi_token *tokens)
|
||||
unsigned processor)
|
||||
{
|
||||
/* Compute shader don't have tgsi_tokens */
|
||||
if (!tokens)
|
||||
return (rscreen->debug_flags & DBG_CS) != 0;
|
||||
|
||||
switch (tgsi_get_processor_type(tokens)) {
|
||||
switch (processor) {
|
||||
case TGSI_PROCESSOR_VERTEX:
|
||||
return (rscreen->debug_flags & DBG_VS) != 0;
|
||||
case TGSI_PROCESSOR_TESS_CTRL:
|
||||
|
|
|
|||
|
|
@ -516,7 +516,7 @@ bool r600_common_context_init(struct r600_common_context *rctx,
|
|||
void r600_common_context_cleanup(struct r600_common_context *rctx);
|
||||
void r600_context_add_resource_size(struct pipe_context *ctx, struct pipe_resource *r);
|
||||
bool r600_can_dump_shader(struct r600_common_screen *rscreen,
|
||||
const struct tgsi_token *tokens);
|
||||
unsigned processor);
|
||||
void r600_screen_clear_buffer(struct r600_common_screen *rscreen, struct pipe_resource *dst,
|
||||
unsigned offset, unsigned size, unsigned value,
|
||||
bool is_framebuffer);
|
||||
|
|
|
|||
|
|
@ -3892,15 +3892,13 @@ int si_shader_binary_read(struct si_screen *sscreen, struct si_shader *shader,
|
|||
{
|
||||
const struct radeon_shader_binary *binary = &shader->binary;
|
||||
int r;
|
||||
bool dump = r600_can_dump_shader(&sscreen->b,
|
||||
shader->selector ? shader->selector->tokens : NULL);
|
||||
|
||||
si_shader_binary_read_config(sscreen, shader, 0);
|
||||
r = si_shader_binary_upload(sscreen, shader);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
if (dump) {
|
||||
if (r600_can_dump_shader(&sscreen->b, processor)) {
|
||||
if (!(sscreen->b.debug_flags & DBG_NO_ASM))
|
||||
si_shader_dump_disassembly(binary, debug);
|
||||
|
||||
|
|
@ -3924,8 +3922,7 @@ int si_compile_llvm(struct si_screen *sscreen, struct si_shader *shader,
|
|||
struct pipe_debug_callback *debug, unsigned processor)
|
||||
{
|
||||
int r = 0;
|
||||
bool dump_asm = r600_can_dump_shader(&sscreen->b,
|
||||
shader->selector ? shader->selector->tokens : NULL);
|
||||
bool dump_asm = r600_can_dump_shader(&sscreen->b, processor);
|
||||
bool dump_ir = dump_asm && !(sscreen->b.debug_flags & DBG_NO_IR);
|
||||
unsigned count = p_atomic_inc_return(&sscreen->b.num_compilations);
|
||||
|
||||
|
|
@ -4092,7 +4089,7 @@ int si_shader_create(struct si_screen *sscreen, LLVMTargetMachineRef tm,
|
|||
int r = 0;
|
||||
bool poly_stipple = sel->type == PIPE_SHADER_FRAGMENT &&
|
||||
shader->key.ps.poly_stipple;
|
||||
bool dump = r600_can_dump_shader(&sscreen->b, sel->tokens);
|
||||
bool dump = r600_can_dump_shader(&sscreen->b, sel->info.processor);
|
||||
|
||||
if (poly_stipple) {
|
||||
tokens = util_pstipple_create_fragment_shader(tokens, NULL,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue