[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