Thanks! Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>
On Fri, Nov 18, 2016 at 4:44 AM, Iago Toral Quiroga <ito...@igalia.com> wrote: > This patch improves pass rate of dEQP-VK.texture.explicit_lod.2d.sizes.* > from 68.0% (98/144) to 83.3% (120/144) by enabling sampler address > rounding mode when the selected filter is not nearest, which is the same > thing we do for OpenGL. > > These tests check texture filtering for various texture sizes and mipmap > levels. The failures (without this patch) affect cases where the target > texture has odd dimensions (like 57x35) and either the Min or the Mag > filter > is not nearest. > > --- > > I think this patch should fix all the failed tests, but for some reason it > only fixes the subset where the MagFilter is not linear. > > src/intel/vulkan/genX_state.c | 17 +++++++++++------ > 1 file changed, 11 insertions(+), 6 deletions(-) > > diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c > index be1bd78..4122395 100644 > --- a/src/intel/vulkan/genX_state.c > +++ b/src/intel/vulkan/genX_state.c > @@ -167,6 +167,11 @@ VkResult genX(CreateSampler)( > uint32_t border_color_offset = device->border_colors.offset + > pCreateInfo->borderColor * 64; > > + bool enable_min_filter_addr_rounding = > + pCreateInfo->minFilter != VK_FILTER_NEAREST; > + bool enable_mag_filter_addr_rounding = > + pCreateInfo->magFilter != VK_FILTER_NEAREST; > + > struct GENX(SAMPLER_STATE) sampler_state = { > .SamplerDisable = false, > .TextureBorderColorMode = DX10OGL, > @@ -202,12 +207,12 @@ VkResult genX(CreateSampler)( > #endif > > .MaximumAnisotropy = vk_to_gen_max_anisotropy( > pCreateInfo->maxAnisotropy), > - .RAddressMinFilterRoundingEnable = 0, > - .RAddressMagFilterRoundingEnable = 0, > - .VAddressMinFilterRoundingEnable = 0, > - .VAddressMagFilterRoundingEnable = 0, > - .UAddressMinFilterRoundingEnable = 0, > - .UAddressMagFilterRoundingEnable = 0, > + .RAddressMinFilterRoundingEnable = enable_min_filter_addr_rounding, > + .RAddressMagFilterRoundingEnable = enable_mag_filter_addr_rounding, > + .VAddressMinFilterRoundingEnable = enable_min_filter_addr_rounding, > + .VAddressMagFilterRoundingEnable = enable_mag_filter_addr_rounding, > + .UAddressMinFilterRoundingEnable = enable_min_filter_addr_rounding, > + .UAddressMagFilterRoundingEnable = enable_mag_filter_addr_rounding, > .TrilinearFilterQuality = 0, > .NonnormalizedCoordinateEnable = pCreateInfo-> > unnormalizedCoordinates, > .TCXAddressControlMode = vk_to_gen_tex_address[ > pCreateInfo->addressModeU], > -- > 2.7.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev