summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/panfrost/pan_context.c5
-rw-r--r--src/panfrost/include/panfrost-job.h5
-rw-r--r--src/panfrost/pandecode/decode.c1
3 files changed, 8 insertions, 3 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index 1915549f251..a72432de239 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -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),
diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h
index 0b633b02c2f..ffe1bf25aa4 100644
--- a/src/panfrost/include/panfrost-job.h
+++ b/src/panfrost/include/panfrost-job.h
@@ -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. */
diff --git a/src/panfrost/pandecode/decode.c b/src/panfrost/pandecode/decode.c
index a556776b38b..2df3cbdc986 100644
--- a/src/panfrost/pandecode/decode.c
+++ b/src/panfrost/pandecode/decode.c
@@ -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