vk: Move all gen8 files to gen8 lib
[mesa.git] / src / vulkan / gen8_state.c
index 22fe21db1a8db3f96c189c9262653a3887b26cfa..4e44179752396fd6f868d2606576284191151393 100644 (file)
@@ -29,6 +29,8 @@
 
 #include "anv_private.h"
 
+#include "gen8_pack.h"
+
 void
 gen8_fill_buffer_surface_state(void *state, const struct anv_format *format,
                                uint32_t offset, uint32_t range, uint32_t stride)
@@ -45,9 +47,9 @@ gen8_fill_buffer_surface_state(void *state, const struct anv_format *format,
       .SamplerL2BypassModeDisable = true,
       .RenderCacheReadWriteMode = WriteOnlyCache,
       .MemoryObjectControlState = GEN8_MOCS,
-      .Height = (num_elements >> 7) & 0x3fff,
-      .Width = num_elements & 0x7f,
-      .Depth = (num_elements >> 21) & 0x3f,
+      .Height = ((num_elements - 1) >> 7) & 0x3fff,
+      .Width = (num_elements - 1) & 0x7f,
+      .Depth = ((num_elements - 1) >> 21) & 0x3f,
       .SurfacePitch = stride - 1,
       .NumberofMultisamples = MULTISAMPLECOUNT_1,
       .ShaderChannelSelectRed = SCS_RED,
@@ -314,10 +316,10 @@ VkResult gen8_CreateSampler(
       .MipModeFilter = vk_to_gen_mipmap_mode[pCreateInfo->mipMode],
       .MagModeFilter = mag_filter,
       .MinModeFilter = min_filter,
-      .TextureLODBias = pCreateInfo->mipLodBias * 256,
+      .TextureLODBias = anv_clamp_f(pCreateInfo->mipLodBias, -16, 15.996),
       .AnisotropicAlgorithm = EWAApproximation,
-      .MinLOD = pCreateInfo->minLod,
-      .MaxLOD = pCreateInfo->maxLod,
+      .MinLOD = anv_clamp_f(pCreateInfo->minLod, 0, 14),
+      .MaxLOD = anv_clamp_f(pCreateInfo->maxLod, 0, 14),
       .ChromaKeyEnable = 0,
       .ChromaKeyIndex = 0,
       .ChromaKeyMode = 0,