mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 07:10:15 +01:00
gallivm: minor arithmetic improvements
This commit is contained in:
parent
d660e28c9c
commit
88e2eae271
1 changed files with 12 additions and 9 deletions
|
|
@ -432,9 +432,10 @@ lp_build_sample_wrap_linear(struct lp_build_sample_context *bld,
|
|||
{
|
||||
LLVMValueRef min, max;
|
||||
if (bld->static_state->normalized_coords) {
|
||||
/* min = -1.0 / (2 * length) */
|
||||
min = lp_build_rcp(coord_bld, lp_build_mul(coord_bld, two, length_f));
|
||||
min = lp_build_negate(coord_bld, min);
|
||||
/* min = -1.0 / (2 * length) = -0.5 / length */
|
||||
min = lp_build_mul(coord_bld,
|
||||
lp_build_const_scalar(coord_bld->type, -0.5F),
|
||||
lp_build_rcp(coord_bld, length_f));
|
||||
/* max = 1.0 - min */
|
||||
max = lp_build_sub(coord_bld, coord_bld->one, min);
|
||||
/* coord = clamp(coord, min, max) */
|
||||
|
|
@ -518,9 +519,10 @@ lp_build_sample_wrap_linear(struct lp_build_sample_context *bld,
|
|||
case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER:
|
||||
{
|
||||
LLVMValueRef min, max;
|
||||
/* min = -1.0 / (2 * length) */
|
||||
min = lp_build_rcp(coord_bld, lp_build_mul(coord_bld, two, length_f));
|
||||
min = lp_build_negate(coord_bld, min);
|
||||
/* min = -1.0 / (2 * length) = -0.5 / length */
|
||||
min = lp_build_mul(coord_bld,
|
||||
lp_build_const_scalar(coord_bld->type, -0.5F),
|
||||
lp_build_rcp(coord_bld, length_f));
|
||||
/* max = 1.0 - min */
|
||||
max = lp_build_sub(coord_bld, coord_bld->one, min);
|
||||
|
||||
|
|
@ -618,9 +620,10 @@ lp_build_sample_wrap_nearest(struct lp_build_sample_context *bld,
|
|||
{
|
||||
LLVMValueRef min, max;
|
||||
if (bld->static_state->normalized_coords) {
|
||||
/* min = -1.0 / (2 * length) */
|
||||
min = lp_build_rcp(coord_bld, lp_build_mul(coord_bld, two, length_f));
|
||||
min = lp_build_negate(coord_bld, min);
|
||||
/* min = -1.0 / (2 * length) = -0.5 / length */
|
||||
min = lp_build_mul(coord_bld,
|
||||
lp_build_const_scalar(coord_bld->type, -0.5F),
|
||||
lp_build_rcp(coord_bld, length_f));
|
||||
/* max = length - min */
|
||||
max = lp_build_sub(coord_bld, length_f, min);
|
||||
/* scale coord to length */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue