aboutsummaryrefslogtreecommitdiffstats
path: root/src/vulkan/genX_state_util.h
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-01-06 19:48:57 -0800
committerJason Ekstrand <[email protected]>2016-01-14 07:30:46 -0800
commited4fe3e9ba9018e68afe6fdd4f267218a537fdaa (patch)
treeb688ea318d32ac49700c21131465f2b41b838ba0 /src/vulkan/genX_state_util.h
parent8a81d136f833ca2fda27438d0b16d3aed7c78746 (diff)
anv/state: Respect SamplerCreateInfo.anisotropyEnable
Diffstat (limited to 'src/vulkan/genX_state_util.h')
-rw-r--r--src/vulkan/genX_state_util.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/vulkan/genX_state_util.h b/src/vulkan/genX_state_util.h
index 0741d766edd..f7a860e796b 100644
--- a/src/vulkan/genX_state_util.h
+++ b/src/vulkan/genX_state_util.h
@@ -66,10 +66,24 @@ vk_to_gen_swizzle(VkComponentSwizzle swizzle, VkComponentSwizzle component)
}
#endif
-static const uint32_t vk_to_gen_tex_filter[] = {
- [VK_FILTER_NEAREST] = MAPFILTER_NEAREST,
- [VK_FILTER_LINEAR] = MAPFILTER_LINEAR
-};
+static inline uint32_t
+vk_to_gen_tex_filter(VkFilter filter, bool anisotropyEnable)
+{
+ switch (filter) {
+ default:
+ assert(!"Invalid filter");
+ case VK_FILTER_NEAREST:
+ return MAPFILTER_NEAREST;
+ case VK_FILTER_LINEAR:
+ return anisotropyEnable ? MAPFILTER_ANISOTROPIC : MAPFILTER_LINEAR;
+ }
+}
+
+static inline uint32_t
+vk_to_gen_max_anisotropy(float ratio)
+{
+ return (anv_clamp_f(ratio, 2, 16) - 2) / 2;
+}
static const uint32_t vk_to_gen_mipmap_mode[] = {
[VK_SAMPLER_MIPMAP_MODE_BASE] = MIPFILTER_NONE,