Lines Matching defs:equation

140 /* Determines if an equation can run in fixed function */
143 pan_blend_can_fixed_function(const struct pan_blend_equation equation,
146 return !equation.blend_enable ||
147 (can_fixed_function_equation(equation.rgb_func,
148 equation.rgb_src_factor,
149 equation.rgb_invert_src_factor,
150 equation.rgb_dst_factor,
151 equation.rgb_invert_dst_factor,
153 can_fixed_function_equation(equation.alpha_func,
154 equation.alpha_src_factor,
155 equation.alpha_invert_src_factor,
156 equation.alpha_dst_factor,
157 equation.alpha_invert_dst_factor,
283 pan_blend_is_opaque(const struct pan_blend_equation equation)
287 if (equation.color_mask != 0xF)
291 if (!equation.blend_enable)
295 return equation.rgb_src_factor == BLEND_FACTOR_ZERO &&
296 equation.rgb_invert_src_factor &&
297 equation.rgb_dst_factor == BLEND_FACTOR_ZERO &&
298 !equation.rgb_invert_dst_factor &&
299 (equation.rgb_func == BLEND_FUNC_ADD ||
300 equation.rgb_func == BLEND_FUNC_SUBTRACT) &&
301 equation.alpha_src_factor == BLEND_FACTOR_ZERO &&
302 equation.alpha_invert_src_factor &&
303 equation.alpha_dst_factor == BLEND_FACTOR_ZERO &&
304 !equation.alpha_invert_dst_factor &&
305 (equation.alpha_func == BLEND_FUNC_ADD ||
306 equation.alpha_func == BLEND_FUNC_SUBTRACT);
317 /* Determines if a blend equation reads back the destination. This can occur by
318 * explicitly referencing the destination in the blend equation, or by using a
322 pan_blend_reads_dest(const struct pan_blend_equation equation)
324 return (equation.color_mask && equation.color_mask != 0xF) ||
325 is_dest_factor(equation.rgb_src_factor, false) ||
326 is_dest_factor(equation.alpha_src_factor, true) ||
327 equation.rgb_dst_factor != BLEND_FACTOR_ZERO ||
328 equation.rgb_invert_dst_factor ||
329 equation.alpha_dst_factor != BLEND_FACTOR_ZERO ||
330 equation.alpha_invert_dst_factor;
334 * state. Assumes the equation can be represented as fixed-function. */
337 pan_blend_to_fixed_function_equation(const struct pan_blend_equation equation,
341 if (!equation.blend_enable) {
342 out->color_mask = equation.color_mask;
353 to_panfrost_function(equation.rgb_func,
354 equation.rgb_src_factor,
355 equation.rgb_invert_src_factor,
356 equation.rgb_dst_factor,
357 equation.rgb_invert_dst_factor,
360 to_panfrost_function(equation.alpha_func,
361 equation.alpha_src_factor,
362 equation.alpha_invert_src_factor,
363 equation.alpha_dst_factor,
364 equation.alpha_invert_dst_factor,
366 out->color_mask = equation.color_mask;
370 pan_pack_blend(const struct pan_blend_equation equation)
377 pan_blend_to_fixed_function_equation(equation, &cfg);
448 if (!rt_state->equation.blend_enable) {
454 if (rt_state->equation.color_mask & 7) {
455 assert(rt_state->equation.rgb_func < ARRAY_SIZE(funcs));
456 assert(rt_state->equation.rgb_src_factor < ARRAY_SIZE(factors));
457 assert(rt_state->equation.rgb_dst_factor < ARRAY_SIZE(factors));
459 (rt_state->equation.color_mask & 1) ? "R" : "",
460 (rt_state->equation.color_mask & 2) ? "G" : "",
461 (rt_state->equation.color_mask & 4) ? "B" : "",
462 funcs[rt_state->equation.rgb_func],
463 rt_state->equation.rgb_invert_src_factor ? "-" : "",
464 factors[rt_state->equation.rgb_src_factor],
465 rt_state->equation.rgb_invert_dst_factor ? "-" : "",
466 factors[rt_state->equation.rgb_dst_factor],
467 rt_state->equation.color_mask & 8 ? ";" : "");
473 if (rt_state->equation.color_mask & 8) {
474 assert(rt_state->equation.alpha_func < ARRAY_SIZE(funcs));
475 assert(rt_state->equation.alpha_src_factor < ARRAY_SIZE(factors));
476 assert(rt_state->equation.alpha_dst_factor < ARRAY_SIZE(factors));
478 funcs[rt_state->equation.alpha_func],
479 rt_state->equation.alpha_invert_src_factor ? "-" : "",
480 factors[rt_state->equation.alpha_src_factor],
481 rt_state->equation.alpha_invert_dst_factor ? "-" : "",
482 factors[rt_state->equation.alpha_dst_factor]);
532 state->logicop_enable ? "logicop" : "equation",
544 .rt[0].colormask = rt_state->equation.color_mask,
548 if (!rt_state->equation.blend_enable) {
560 options.rt[0].rgb.func = rt_state->equation.rgb_func;
561 options.rt[0].rgb.src_factor = rt_state->equation.rgb_src_factor;
562 options.rt[0].rgb.invert_src_factor = rt_state->equation.rgb_invert_src_factor;
563 options.rt[0].rgb.dst_factor = rt_state->equation.rgb_dst_factor;
564 options.rt[0].rgb.invert_dst_factor = rt_state->equation.rgb_invert_dst_factor;
565 options.rt[0].alpha.func = rt_state->equation.alpha_func;
566 options.rt[0].alpha.src_factor = rt_state->equation.alpha_src_factor;
567 options.rt[0].alpha.invert_src_factor = rt_state->equation.alpha_invert_src_factor;
568 options.rt[0].alpha.dst_factor = rt_state->equation.alpha_dst_factor;
569 options.rt[0].alpha.invert_dst_factor = rt_state->equation.alpha_invert_dst_factor;
691 .has_constants = pan_blend_constant_mask(state->rts[rt].equation) != 0,
695 .equation = state->rts[rt].equation,