[Mesa-dev] [PATCH 1/4] util/radv: move *_get_function_timestamp() to utils

Nicolai Hähnle nhaehnle at gmail.com
Tue Feb 21 08:54:01 UTC 2017


On 20.02.2017 01:15, Timothy Arceri wrote:
> V2: The functions we are now sharing used different return values
> update the callers to reflect the new common api.

Wasn't there a similar patch on the list recently that also had an anv part?

Cheers,
Nicolai

> ---
>  src/amd/vulkan/radv_device.c | 22 +++-------------------
>  src/util/disk_cache.h        | 17 +++++++++++++++++
>  2 files changed, 20 insertions(+), 19 deletions(-)
>
> diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
> index 6f2fac2..8cd21c4 100644
> --- a/src/amd/vulkan/radv_device.c
> +++ b/src/amd/vulkan/radv_device.c
> @@ -25,14 +25,13 @@
>   * IN THE SOFTWARE.
>   */
>
> -#include <dlfcn.h>
>  #include <stdbool.h>
>  #include <string.h>
>  #include <unistd.h>
>  #include <fcntl.h>
> -#include <sys/stat.h>
>  #include "radv_private.h"
>  #include "radv_cs.h"
> +#include "util/disk_cache.h"
>  #include "util/strtod.h"
>
>  #include <xf86drm.h>
> @@ -47,28 +46,13 @@
>  struct radv_dispatch_table dtable;
>
>  static int
> -radv_get_function_timestamp(void *ptr, uint32_t* timestamp)
> -{
> -	Dl_info info;
> -	struct stat st;
> -	if (!dladdr(ptr, &info) || !info.dli_fname) {
> -		return -1;
> -	}
> -	if (stat(info.dli_fname, &st)) {
> -		return -1;
> -	}
> -	*timestamp = st.st_mtim.tv_sec;
> -	return 0;
> -}
> -
> -static int
>  radv_device_get_cache_uuid(enum radeon_family family, void *uuid)
>  {
>  	uint32_t mesa_timestamp, llvm_timestamp;
>  	uint16_t f = family;
>  	memset(uuid, 0, VK_UUID_SIZE);
> -	if (radv_get_function_timestamp(radv_device_get_cache_uuid, &mesa_timestamp) ||
> -	    radv_get_function_timestamp(LLVMInitializeAMDGPUTargetInfo, &llvm_timestamp))
> +	if (!disk_cache_get_function_timestamp(radv_device_get_cache_uuid, &mesa_timestamp) ||
> +	    !disk_cache_get_function_timestamp(LLVMInitializeAMDGPUTargetInfo, &llvm_timestamp))
>  		return -1;
>
>  	memcpy(uuid, &mesa_timestamp, 4);
> diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h
> index 7c15aa1..8b6fc0d 100644
> --- a/src/util/disk_cache.h
> +++ b/src/util/disk_cache.h
> @@ -24,8 +24,10 @@
>  #ifndef DISK_CACHE_H
>  #define DISK_CACHE_H
>
> +#include <dlfcn.h>
>  #include <stdint.h>
>  #include <stdbool.h>
> +#include <sys/stat.h>
>
>  #ifdef __cplusplus
>  extern "C" {
> @@ -38,6 +40,21 @@ typedef uint8_t cache_key[CACHE_KEY_SIZE];
>
>  struct disk_cache;
>
> +static inline bool
> +disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp)
> +{
> +	Dl_info info;
> +	struct stat st;
> +	if (!dladdr(ptr, &info) || !info.dli_fname) {
> +		return false;
> +	}
> +	if (stat(info.dli_fname, &st)) {
> +		return false;
> +	}
> +	*timestamp = st.st_mtim.tv_sec;
> +	return true;
> +}
> +
>  /* Provide inlined stub functions if the shader cache is disabled. */
>
>  #ifdef ENABLE_SHADER_CACHE
>



More information about the mesa-dev mailing list