aboutsummaryrefslogtreecommitdiff
path: root/layers/vk_layer_utils.h
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2015-12-16 17:47:28 -0700
committerMark Lobodzinski <mark@lunarg.com>2015-12-17 08:24:23 -0700
commita62a08041594c25c35ae9fedb321e1f6cc1fa378 (patch)
tree0f1fb7b83918a8a2971fa23368f791c3d8dc8ca8 /layers/vk_layer_utils.h
parent338db9da918a917478cd3a55d23fde38d8ebbcd8 (diff)
downloadusermoji-a62a08041594c25c35ae9fedb321e1f6cc1fa378.tar.xz
layers: Fix find-first-set bitscan util
On win32, was using leading-zero count instead of find-first-set. Caused random failures on Windows release builds.
Diffstat (limited to 'layers/vk_layer_utils.h')
-rw-r--r--layers/vk_layer_utils.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/layers/vk_layer_utils.h b/layers/vk_layer_utils.h
index a4520505..52a615f6 100644
--- a/layers/vk_layer_utils.h
+++ b/layers/vk_layer_utils.h
@@ -63,9 +63,13 @@ size_t vk_format_get_size(VkFormat format);
static inline int u_ffs(int val)
{
#ifdef WIN32
- return __lzcnt(val) + 1;
+ unsigned long bit_pos = 0;
+ if (_BitScanReverse(&bit_pos, val) != 0) {
+ bit_pos += 1;
+ }
+ return bit_pos;
#else
- return ffs(val);
+ return ffs(val);
#endif
}