diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index 74806aba446..6e2a36c5b27 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -230,6 +230,14 @@ panfrost_create_sampler_state(struct pipe_context *pctx, cfg.border_color_a = so->base.border_color.ui[3]; #if PAN_ARCH >= 6 + /* + * Disabling round_to_nearest_even for NEAREST filters ensures proper + * floor() behavior as required by OpenCL_C spec section 8.2. + */ + if (cso->mag_img_filter == PIPE_TEX_FILTER_NEAREST && + cso->min_img_filter == PIPE_TEX_FILTER_NEAREST) + cfg.round_to_nearest_even = false; + if (cso->max_anisotropy > 1) { cfg.maximum_anisotropy = cso->max_anisotropy; cfg.lod_algorithm = MALI_LOD_ALGORITHM_ANISOTROPIC;