[Mesa-dev] [PATCH] radv: don't crash if cache is disabled.

Timothy Arceri tarceri at itsqueeze.com
Thu Oct 12 04:59:19 UTC 2017


Thanks.

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

On 12/10/17 15:24, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
> 
> If you set MESA_GLSL_CACHE_DISABLE, radv crashed.
> 
> Fixes: fd24be134f (radv: make use of on-disk cache)
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>   src/amd/vulkan/radv_pipeline_cache.c | 14 +++++++++-----
>   1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/src/amd/vulkan/radv_pipeline_cache.c b/src/amd/vulkan/radv_pipeline_cache.c
> index 50d6646f6f0..fc99b43fff0 100644
> --- a/src/amd/vulkan/radv_pipeline_cache.c
> +++ b/src/amd/vulkan/radv_pipeline_cache.c
> @@ -167,6 +167,8 @@ radv_create_shader_variant_from_pipeline_cache(struct radv_device *device,
>   		entry = radv_pipeline_cache_search(device->mem_cache, sha1);
>   
>   	if (!entry) {
> +		if (!device->physical_device->disk_cache)
> +			return NULL;
>   		uint8_t disk_sha1[20];
>   		disk_cache_compute_key(device->physical_device->disk_cache,
>   				       sha1, 20, disk_sha1);
> @@ -317,11 +319,13 @@ radv_pipeline_cache_insert_shader(struct radv_device *device,
>   	 * compiled shaders by third parties such as steam, even if the app
>   	 * implements its own pipeline cache.
>   	 */
> -	uint8_t disk_sha1[20];
> -	disk_cache_compute_key(device->physical_device->disk_cache, sha1, 20,
> -			       disk_sha1);
> -	disk_cache_put(device->physical_device->disk_cache,
> -		       disk_sha1, entry, entry_size(entry), NULL);
> +	if (device->physical_device->disk_cache) {
> +		uint8_t disk_sha1[20];
> +		disk_cache_compute_key(device->physical_device->disk_cache, sha1, 20,
> +				       disk_sha1);
> +		disk_cache_put(device->physical_device->disk_cache,
> +			       disk_sha1, entry, entry_size(entry), NULL);
> +	}
>   
>   	entry->variant = variant;
>   	p_atomic_inc(&variant->ref_count);
> 


More information about the mesa-dev mailing list