[Mesa-dev] [PATCH] radv: do not dump meta shaders with RADV_DEBUG=shaders

Samuel Pitoiset samuel.pitoiset at gmail.com
Mon Dec 4 11:09:44 UTC 2017



On 12/04/2017 11:31 AM, James Legg wrote:
> Hi Samuel,
> 
> On Thu, 2017-11-30 at 22:16 +0100, Samuel Pitoiset wrote:
>> It's really annoying and this pollutes the output especially
>> when a bunch of non-meta shaders are compiled.
> 
>> diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
>> index 32edf2abd2..5464d3a58e 100644
>> --- a/src/amd/vulkan/radv_shader.c
>> +++ b/src/amd/vulkan/radv_shader.c
>> @@ -429,7 +429,7 @@ shader_variant_create(struct radv_device *device,
>>   		      unsigned *code_size_out)
>>   {
>>   	enum radeon_family chip_family = device->physical_device->rad_info.family;
>> -	bool dump_shaders = device->instance->debug_flags & RADV_DEBUG_DUMP_SHADERS;
>> +	bool dump_shaders = radv_can_dump_shader(device, module);
>>   	enum ac_target_machine_options tm_options = 0;
>>   	struct radv_shader_variant *variant;
>>   	struct ac_shader_binary binary;
> 
> This shader_variant_create function is called with NULL for the module
> parameter in radv_create_gs_copy_shader.
> 
>> diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h
>> index 9bdbe848c8..91f2e7f2a1 100644
>> --- a/src/amd/vulkan/radv_shader.h
>> +++ b/src/amd/vulkan/radv_shader.h
>> @@ -112,4 +113,13 @@ radv_shader_dump_stats(struct radv_device *device,
>>   		       gl_shader_stage stage,
>>   		       FILE *file);
>>   
>> +static inline bool
>> +radv_can_dump_shader(struct radv_device *device,
>> +		     struct radv_shader_module *module)
>> +{
>> +	/* Only dump non-meta shaders, useful for debugging purposes. */
>> +	return !module->nir &&
>> +	       device->instance->debug_flags & RADV_DEBUG_DUMP_SHADERS;
>> +}
>> +
>>   #endif
> 
> Consequently, there is a NULL dereference here if
> radv_create_gs_copy_shader is used.

Yeah, I figured and there is a patch on the list for that.
Thanks James!

> 
> James
> 


More information about the mesa-dev mailing list