diff --git a/src/gallium/drivers/softpipe/ci/softpipe-asan-fails.txt b/src/gallium/drivers/softpipe/ci/softpipe-asan-fails.txt index 50b6e38902d..5d9ab75830a 100644 --- a/src/gallium/drivers/softpipe/ci/softpipe-asan-fails.txt +++ b/src/gallium/drivers/softpipe/ci/softpipe-asan-fails.txt @@ -17,19 +17,11 @@ dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immuta dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_float,Fail dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_integer,Fail dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_pure_int,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_clamp_repeat,Fail dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_mirror_repeat,Fail dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_clamp_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_repeat_mirror,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_repeat,Fail dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb5_a1_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba16f_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_nearest_mipmap_linear,Fail dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_nearest_mipmap_linear,Fail dEQP-GLES31.functional.texture.filtering.cube_array.sizes.63x63x18_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.sizes.64x64x12_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.sizes.8x8x6_nearest,Fail dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.repeat_mirrored_repeat,Fail dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.no_corners.size_pot.mirrored_repeat_clamp_to_edge,Fail dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.base_level.level_1,Fail diff --git a/src/gallium/drivers/softpipe/ci/softpipe-fails.txt b/src/gallium/drivers/softpipe/ci/softpipe-fails.txt index 1f4ef9bdeee..af050b4403e 100644 --- a/src/gallium/drivers/softpipe/ci/softpipe-fails.txt +++ b/src/gallium/drivers/softpipe/ci/softpipe-fails.txt @@ -514,60 +514,14 @@ dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_ dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_pure_uint,Fail dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.linear_size_npot,Fail dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.linear_size_pot,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_clamp_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_mirror_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_clamp,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_mirror,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_clamp_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_mirror_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_repeat_clamp,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_repeat_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_clamp_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_mirror_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_repeat_clamp,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_repeat_mirror,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_clamp_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_mirror_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_repeat_clamp,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_repeat_mirror,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_clamp,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_mirror,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_repeat,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_nearest_repeat_mirror,Fail dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_linear_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest,Fail dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb565_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb565_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb5_a1_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb5_a1_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb9_e5_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb9_e5_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba16f_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba16f_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba4_nearest,Fail dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba4_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_snorm_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_snorm_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.sr8_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.srg8_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.srg8_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.srg8_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.srgb8_alpha8_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.formats.srgb8_alpha8_nearest_mipmap_linear,Fail dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear,Fail dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear_mipmap_linear,Fail dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear_mipmap_nearest,Fail dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_nearest_mipmap_linear,Fail dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.sizes.63x63x18_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.sizes.64x64x12_nearest_mipmap_linear,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.sizes.64x64x12_nearest_mipmap_nearest,Fail -dEQP-GLES31.functional.texture.filtering.cube_array.sizes.8x8x6_nearest,Fail dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.clamp_to_edge_repeat,Fail dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.mirrored_repeat_clamp_to_edge,Fail dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.repeat_mirrored_repeat,Fail diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c index e0d3215a944..826c42dfa5f 100644 --- a/src/mesa/state_tracker/st_atom_sampler.c +++ b/src/mesa/state_tracker/st_atom_sampler.c @@ -80,6 +80,20 @@ st_convert_sampler(const struct st_context *st, if (texobj->Target == GL_TEXTURE_RECTANGLE_ARB && !st->lower_rect_tex) sampler->unnormalized_coords = 1; + /* + * The spec says that "texture wrap modes are ignored" for seamless cube + * maps, so normalize the CSO. This works around Apple hardware which honours + * REPEAT modes even for seamless cube maps. + */ + if ((texobj->Target == GL_TEXTURE_CUBE_MAP || + texobj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) && + sampler->seamless_cube_map) { + + sampler->wrap_s = PIPE_TEX_WRAP_CLAMP_TO_EDGE; + sampler->wrap_t = PIPE_TEX_WRAP_CLAMP_TO_EDGE; + sampler->wrap_r = PIPE_TEX_WRAP_CLAMP_TO_EDGE; + } + sampler->lod_bias += tex_unit_lod_bias; /* Check that only wrap modes using the border color have the first bit