diff options
author | Jason Ekstrand <[email protected]> | 2016-01-06 19:48:57 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-01-14 07:30:46 -0800 |
commit | ed4fe3e9ba9018e68afe6fdd4f267218a537fdaa (patch) | |
tree | b688ea318d32ac49700c21131465f2b41b838ba0 /src/vulkan/genX_state_util.h | |
parent | 8a81d136f833ca2fda27438d0b16d3aed7c78746 (diff) |
anv/state: Respect SamplerCreateInfo.anisotropyEnable
Diffstat (limited to 'src/vulkan/genX_state_util.h')
-rw-r--r-- | src/vulkan/genX_state_util.h | 22 |
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, |