Module: Mesa Branch: main Commit: 4ef8eebdc7cf244a999e754c070471cfc3e8425a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ef8eebdc7cf244a999e754c070471cfc3e8425a
Author: Emma Anholt <[email protected]> Date: Mon Jun 21 09:28:59 2021 -0700 i915g: Use the color swizzle to reshuffle the blend const color. If we're remapping RGBA from the shader into dst channels, we also need to remap the blend constant color. The previous static mapping only worked for ARGB cbufs, but we get ABGR in surfaceless deqp. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11512> --- .../drivers/i915/ci/deqp-i915-g33-fails.txt | 218 --------------------- .../drivers/i915/ci/piglit-i915-g33-fails.txt | 1 - src/gallium/drivers/i915/i915_context.c | 2 + src/gallium/drivers/i915/i915_context.h | 3 + src/gallium/drivers/i915/i915_state.c | 14 +- src/gallium/drivers/i915/i915_state_dynamic.c | 10 +- src/gallium/drivers/i915/i915_state_fpc.c | 2 +- src/gallium/drivers/i915/i915_state_static.c | 8 - 8 files changed, 23 insertions(+), 235 deletions(-) diff --git a/src/gallium/drivers/i915/ci/deqp-i915-g33-fails.txt b/src/gallium/drivers/i915/ci/deqp-i915-g33-fails.txt index 761da0e003d..3b48f69a08c 100644 --- a/src/gallium/drivers/i915/ci/deqp-i915-g33-fails.txt +++ b/src/gallium/drivers/i915/ci/deqp-i915-g33-fails.txt @@ -21,222 +21,6 @@ dEQP-GLES2.functional.clipping.point.wide_point_z_clip_viewport_corner,Fail dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z,Fail dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z,Fail dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.rgb10_a2,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_constant_color_zero,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_constant_color_zero,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_dst_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_dst_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_dst_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_dst_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_src_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_src_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_src_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_minus_src_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_one_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_alpha_saturate_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_alpha_saturate_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_src_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_zero_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_zero_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_dst_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_dst_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_dst_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_dst_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_dst_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_src_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_src_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_src_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_minus_src_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_one_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_alpha_saturate_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_alpha_saturate_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_src_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_constant_color_zero,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_dst_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_constant_color_zero,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_dst_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_dst_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_dst_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_dst_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_src_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_src_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_src_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_minus_src_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_one_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_alpha_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_alpha_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_alpha_saturate_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_alpha_saturate_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.subtract_src_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.constant_color_zero,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_constant_color_zero,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_src_alpha_saturate,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.constant_color_zero,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_one,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_one_minus_constant_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_one_minus_constant_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_one_minus_dst_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_one_minus_dst_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_one_minus_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_one_minus_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_src_alpha,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_src_alpha_saturate,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_src_color,Fail -dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.src.one_minus_constant_color_zero,Fail dEQP-GLES2.functional.fragment_ops.depth_stencil.random.0,Fail dEQP-GLES2.functional.fragment_ops.depth_stencil.random.1,Fail dEQP-GLES2.functional.fragment_ops.depth_stencil.random.10,Fail @@ -384,7 +168,6 @@ dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.5,Fail dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.50,Fail dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.51,Fail dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.52,Fail -dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.53,Fail dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.54,Fail dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.55,Fail dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.56,Fail @@ -495,7 +278,6 @@ dEQP-GLES2.functional.fragment_ops.random.61,Fail dEQP-GLES2.functional.fragment_ops.random.62,Fail dEQP-GLES2.functional.fragment_ops.random.63,Fail dEQP-GLES2.functional.fragment_ops.random.64,Fail -dEQP-GLES2.functional.fragment_ops.random.65,Fail dEQP-GLES2.functional.fragment_ops.random.66,Fail dEQP-GLES2.functional.fragment_ops.random.67,Fail dEQP-GLES2.functional.fragment_ops.random.68,Fail diff --git a/src/gallium/drivers/i915/ci/piglit-i915-g33-fails.txt b/src/gallium/drivers/i915/ci/piglit-i915-g33-fails.txt index 2951cc517a9..557c6b191b4 100644 --- a/src/gallium/drivers/i915/ci/piglit-i915-g33-fails.txt +++ b/src/gallium/drivers/i915/ci/piglit-i915-g33-fails.txt @@ -521,7 +521,6 @@ spec@ext_framebuffer_object@fbo-blending-formats@GL_LUMINANCE4,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_LUMINANCE8,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB10,Fail -spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB10_A2,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB12,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB16,Fail spec@ext_framebuffer_object@fbo-blending-formats@GL_RGB4,Fail diff --git a/src/gallium/drivers/i915/i915_context.c b/src/gallium/drivers/i915/i915_context.c index 98851841fc3..04c80f75920 100644 --- a/src/gallium/drivers/i915/i915_context.c +++ b/src/gallium/drivers/i915/i915_context.c @@ -239,5 +239,7 @@ i915_create_context(struct pipe_screen *screen, void *priv, unsigned flags) i915->static_dirty = ~0; i915->flush_dirty = 0; + i915->current.fixup_swizzle = ~0; + return &i915->base; } diff --git a/src/gallium/drivers/i915/i915_context.h b/src/gallium/drivers/i915/i915_context.h index a5f893bbd63..b0bfdba4dc4 100644 --- a/src/gallium/drivers/i915/i915_context.h +++ b/src/gallium/drivers/i915/i915_context.h @@ -173,6 +173,8 @@ struct i915_state /* Reswizzle for OC writes in PIXEL_SHADER_PROGRAM, or 0 if unnecessary. */ uint32_t fixup_swizzle; + /* Mapping from color buffer dst channels in HW to gallium API src channels. */ + uint8_t color_swizzle[4]; unsigned id; /* track lost context events */ }; @@ -314,6 +316,7 @@ struct i915_context { #define I915_NEW_GS_CONSTANTS 0x4000 #define I915_NEW_VBO 0x8000 #define I915_NEW_VS 0x10000 +#define I915_NEW_COLOR_SWIZZLE 0x20000 /* Driver's internally generated state flags: diff --git a/src/gallium/drivers/i915/i915_state.c b/src/gallium/drivers/i915/i915_state.c index 8eccc71367b..1e85d7c4846 100644 --- a/src/gallium/drivers/i915/i915_state.c +++ b/src/gallium/drivers/i915/i915_state.c @@ -730,8 +730,18 @@ static void i915_set_framebuffer_state(struct pipe_context *pipe, i915->framebuffer.width = fb->width; i915->framebuffer.height = fb->height; i915->framebuffer.nr_cbufs = fb->nr_cbufs; - pipe_surface_reference(&i915->framebuffer.cbufs[0], - fb->nr_cbufs ? fb->cbufs[0] : NULL); + if (fb->nr_cbufs) { + pipe_surface_reference(&i915->framebuffer.cbufs[0], fb->cbufs[0]); + + struct i915_surface *surf = i915_surface(i915->framebuffer.cbufs[0]); + if (i915->current.fixup_swizzle != surf->oc_swizzle) { + i915->current.fixup_swizzle = surf->oc_swizzle; + memcpy(i915->current.color_swizzle, surf->color_swizzle, sizeof(surf->color_swizzle)); + i915->dirty |= I915_NEW_COLOR_SWIZZLE; + } + } else { + pipe_surface_reference(&i915->framebuffer.cbufs[0], NULL); + } pipe_surface_reference(&i915->framebuffer.zsbuf, fb->zsbuf); i915->dirty |= I915_NEW_FRAMEBUFFER; diff --git a/src/gallium/drivers/i915/i915_state_dynamic.c b/src/gallium/drivers/i915/i915_state_dynamic.c index 434b09d4e0e..9193df07ff1 100644 --- a/src/gallium/drivers/i915/i915_state_dynamic.c +++ b/src/gallium/drivers/i915/i915_state_dynamic.c @@ -143,10 +143,10 @@ static void upload_BLENDCOLOR(struct i915_context *i915) const float *color = i915->blend_color.color; bc[0] = _3DSTATE_CONST_BLEND_COLOR_CMD; - bc[1] = pack_ui32_float4(color[0], - color[1], - color[2], - color[3]); + bc[1] = pack_ui32_float4(color[i915->current.color_swizzle[2]], + color[i915->current.color_swizzle[1]], + color[i915->current.color_swizzle[0]], + color[i915->current.color_swizzle[3]]); } set_dynamic_array(i915, I915_DYNAMIC_BC_0, bc, 2); @@ -155,7 +155,7 @@ static void upload_BLENDCOLOR(struct i915_context *i915) const struct i915_tracked_state i915_upload_BLENDCOLOR = { "BLENDCOLOR", upload_BLENDCOLOR, - I915_NEW_BLEND + I915_NEW_BLEND | I915_NEW_COLOR_SWIZZLE }; diff --git a/src/gallium/drivers/i915/i915_state_fpc.c b/src/gallium/drivers/i915/i915_state_fpc.c index 1959a24691d..d9bfb850701 100644 --- a/src/gallium/drivers/i915/i915_state_fpc.c +++ b/src/gallium/drivers/i915/i915_state_fpc.c @@ -55,5 +55,5 @@ static void update_fs(struct i915_context *i915) struct i915_tracked_state i915_hw_fs = { "fs", update_fs, - I915_NEW_FS + I915_NEW_FS | I915_NEW_COLOR_SWIZZLE }; diff --git a/src/gallium/drivers/i915/i915_state_static.c b/src/gallium/drivers/i915/i915_state_static.c index 2d0a7416072..97a0d2dbda2 100644 --- a/src/gallium/drivers/i915/i915_state_static.c +++ b/src/gallium/drivers/i915/i915_state_static.c @@ -82,7 +82,6 @@ static void update_framebuffer(struct i915_context *i915) unsigned x, y; int layer; uint32_t draw_offset, draw_size; - uint32_t oc_swizzle = 0; if (cbuf_surface) { struct i915_surface *surf = i915_surface(cbuf_surface); @@ -96,8 +95,6 @@ static void update_framebuffer(struct i915_context *i915) x = tex->image_offset[cbuf_surface->u.tex.level][layer].nblocksx; y = tex->image_offset[cbuf_surface->u.tex.level][layer].nblocksy; - - oc_swizzle = surf->oc_swizzle; } else { i915->current.cbuf_bo = NULL; x = y = 0; @@ -137,11 +134,6 @@ static void update_framebuffer(struct i915_context *i915) i915->hardware_dirty |= I915_HW_STATIC; - if (i915->current.fixup_swizzle != oc_swizzle) { - i915->current.fixup_swizzle = oc_swizzle; - i915->hardware_dirty |= I915_HW_PROGRAM; - } - /* flush the cache in case we sample from the old renderbuffers */ i915_set_flush_dirty(i915, I915_FLUSH_CACHE); } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
