diff options
Diffstat (limited to 'src/broadcom/compiler')
-rw-r--r-- | src/broadcom/compiler/v3d_compiler.h | 5 | ||||
-rw-r--r-- | src/broadcom/compiler/vir.c | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/broadcom/compiler/v3d_compiler.h b/src/broadcom/compiler/v3d_compiler.h index 021c88f7b93..56a9d143e32 100644 --- a/src/broadcom/compiler/v3d_compiler.h +++ b/src/broadcom/compiler/v3d_compiler.h @@ -294,8 +294,9 @@ struct v3d_key { struct { unsigned compare_mode:1; unsigned compare_func:3; - unsigned wrap_s:3; - unsigned wrap_t:3; + bool clamp_s:1; + bool clamp_t:1; + bool clamp_r:1; }; struct { uint16_t msaa_width, msaa_height; diff --git a/src/broadcom/compiler/vir.c b/src/broadcom/compiler/vir.c index 99b31841b37..d9201e68dc5 100644 --- a/src/broadcom/compiler/vir.c +++ b/src/broadcom/compiler/vir.c @@ -553,6 +553,13 @@ v3d_lower_nir(struct v3d_compile *c) for (int i = 0; i < ARRAY_SIZE(c->key->tex); i++) { for (int j = 0; j < 4; j++) tex_options.swizzles[i][j] = c->key->tex[i].swizzle[j]; + + if (c->key->tex[i].clamp_s) + tex_options.saturate_s |= 1 << i; + if (c->key->tex[i].clamp_t) + tex_options.saturate_t |= 1 << i; + if (c->key->tex[i].clamp_r) + tex_options.saturate_r |= 1 << i; } NIR_PASS_V(c->s, nir_lower_tex, &tex_options); |