On Wed, Jun 22, 2016 at 01:04:41PM +0100, Emil Velikov wrote: > From: Emil Velikov <emil.veli...@collabora.com> > > Do not rely on the git sha1: > - its current truncated form makes it less unique > - it does not attribute for local (Vulkand or otherwise) changes > > Use a timestamp produced at the time of build. It's perfectly unique, > unless someone explicitly thinkers with their system clock. Even then > chances of producing the exact same one are very small, if not zero. > > Cc: Jason Ekstrand <ja...@jlekstrand.net> > Cc: mesa-sta...@lists.freedesktop.org > Signed-off-by: Emil Velikov <emil.veli...@collabora.com> > --- > Current approach uses seconds since Epoch, but if people prefer we > can use nano seconds, combination of the two and/or other. > --- > src/intel/vulkan/.gitignore | 2 ++ > src/intel/vulkan/Makefile.am | 15 ++++++++++++++- > src/intel/vulkan/anv_device.c | 4 ++-- > 3 files changed, 18 insertions(+), 3 deletions(-) > > diff --git a/src/intel/vulkan/.gitignore b/src/intel/vulkan/.gitignore > index a496146..7ef6a48 100644 > --- a/src/intel/vulkan/.gitignore > +++ b/src/intel/vulkan/.gitignore > @@ -2,3 +2,5 @@ > /anv_entrypoints.c > /anv_entrypoints.h > /dev_icd.json > +/anv_timestamp.h.tmp > +/anv_timestamp.h > diff --git a/src/intel/vulkan/Makefile.am b/src/intel/vulkan/Makefile.am > index 4d9ff90..8332ae5 100644 > --- a/src/intel/vulkan/Makefile.am > +++ b/src/intel/vulkan/Makefile.am > @@ -131,7 +131,20 @@ anv_entrypoints.c : anv_entrypoints_gen.py > $(vulkan_include_HEADERS) > $(AM_V_GEN) cat $(vulkan_include_HEADERS) |\ > $(PYTHON2) $(srcdir)/anv_entrypoints_gen.py code > $@ > > -BUILT_SOURCES = $(VULKAN_GENERATED_FILES) > + > +.PHONY: anv_timestamp.h.tmp > +anv_timestamp.h.tmp: > + $(AM_V_GEN) echo "#define ANV_TIMESTAMP `date +%s`" > $@ > + > +anv_timestamp.h: anv_timestamp.h.tmp > + @echo "Updating anv_timestamp.h" > + @if ! cmp -s anv_timestamp.h.tmp anv_timestamp.h; then \ > + mv anv_timestamp.h.tmp anv_timestamp.h ;\ > + else \ > + rm anv_timestamp.h.tmp ;\ > + fi
For the else branch to be taken, the target would have to be generated twice within the same second, and I don't see why we would want to avoid modifying anv_timestamp.h's timestamp in this case, since that would be the only thing that would be changed, and said timestamp would be within the same second anyway. I suggest to drop the `if` and unconditionally do the move. Since this wouldn't change the behaviour anyway, with or without my suggestion this patch is: Reviewed-by: Eric Engestrom <eric.engest...@imgtec.com> > + > +BUILT_SOURCES = $(VULKAN_GENERATED_FILES) anv_timestamp.h > CLEANFILES = $(BUILT_SOURCES) dev_icd.json > EXTRA_DIST = \ > $(top_srcdir)/include/vulkan/vk_icd.h \ > diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c > index 97300c3..e395b1c 100644 > --- a/src/intel/vulkan/anv_device.c > +++ b/src/intel/vulkan/anv_device.c > @@ -28,7 +28,7 @@ > #include <fcntl.h> > > #include "anv_private.h" > -#include "git_sha1.h" > +#include "anv_timestamp.h" > #include "util/strtod.h" > #include "util/debug.h" > > @@ -426,7 +426,7 @@ void > anv_device_get_cache_uuid(void *uuid) > { > memset(uuid, 0, VK_UUID_SIZE); > - snprintf(uuid, VK_UUID_SIZE, "anv-%s", MESA_GIT_SHA1 + 4); > + snprintf(uuid, VK_UUID_SIZE, "anv-%s", ANV_TIMESTAMP); > } > > void anv_GetPhysicalDeviceProperties( > -- > 2.8.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev