panfrost: Add MALI_SAMP_NORM_COORDS flag
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 31 Jul 2019 16:08:07 +0000 (09:08 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 31 Jul 2019 17:56:11 +0000 (10:56 -0700)
Corresponds to the normalized coordinates? flag on images in OpenCL and
evidently also shows up in GL, so let's wire it in.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/gallium/drivers/panfrost/pan_context.c
src/panfrost/include/panfrost-job.h
src/panfrost/pandecode/decode.c

index 1915549f2516b6fdf2bf11db27789e358dcc55b7..a72432de23925d5b3845453e7ddb9e72b45fd54b 100644 (file)
@@ -1946,11 +1946,10 @@ panfrost_create_sampler_state(
         unsigned mag_filter = mag_nearest ? MALI_SAMP_MAG_NEAREST : 0;
         unsigned mip_filter = mip_linear  ?
                 (MALI_SAMP_MIP_LINEAR_1 | MALI_SAMP_MIP_LINEAR_2) : 0;
+        unsigned normalized = cso->normalized_coords ? MALI_SAMP_NORM_COORDS : 0;
 
         struct mali_sampler_descriptor sampler_descriptor = {
-                .filter_mode = min_filter | mag_filter | mip_filter
-                | 0x20,
-
+                .filter_mode = min_filter | mag_filter | mip_filter | normalized,
                 .wrap_s = translate_tex_wrap(cso->wrap_s),
                 .wrap_t = translate_tex_wrap(cso->wrap_t),
                 .wrap_r = translate_tex_wrap(cso->wrap_r),
index 0b633b02c2f986bd46efc1cc2dd374896fd1833d..ffe1bf25aa4c45cad5813800b7927571c99d8113 100644 (file)
@@ -1198,6 +1198,11 @@ struct mali_texture_descriptor {
 #define MALI_SAMP_MIP_LINEAR_1 (1 << 3)
 #define MALI_SAMP_MIP_LINEAR_2 (1 << 4)
 
+/* Flag in filter_mode, corresponding to OpenCL's NORMALIZED_COORDS_TRUE
+ * sampler_t flag. For typical OpenGL textures, this is always set. */
+
+#define MALI_SAMP_NORM_COORDS (1 << 5)
+
 /* Used for lod encoding. Thanks @urjaman for pointing out these routines can
  * be cleaned up a lot. */
 
index a556776b38b57889f6d28f13186c5fcde274ab64..2df3cbdc98675e2c5ad2d1f60bc9554f2729777d 100644 (file)
@@ -251,6 +251,7 @@ static const struct pandecode_flag_info sampler_flag_info [] = {
         FLAG_INFO(MIN_NEAREST),
         FLAG_INFO(MIP_LINEAR_1),
         FLAG_INFO(MIP_LINEAR_2),
+        FLAG_INFO(NORM_COORDS),
         {}
 };
 #undef FLAG_INFO