i965: Don't use CUBE wrap modes for integer formats on IVB/BYT.
There is no linear filtering for integer formats, so we should always
be using CLAMP_TO_EDGE mode.
Fixes 46 dEQP cases on Ivybridge (which were likely broken by commit
0faf26e6a0).
This workaround doesn't appear to be necessary on any other hardware;
I haven't found any documentation mentioning errata in this area.
v2: Only apply on Ivybridge/Baytrail to avoid regressing GLES3.1 tests.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> [v1]
This commit is contained in:
@@ -459,8 +459,12 @@ brw_update_sampler_state(struct brw_context *brw,
|
||||
target == GL_TEXTURE_CUBE_MAP_ARRAY) {
|
||||
/* Cube maps must use the same wrap mode for all three coordinate
|
||||
* dimensions. Prior to Haswell, only CUBE and CLAMP are valid.
|
||||
*
|
||||
* Ivybridge and Baytrail seem to have problems with CUBE mode and
|
||||
* integer formats. Fall back to CLAMP for now.
|
||||
*/
|
||||
if (tex_cube_map_seamless || sampler->CubeMapSeamless) {
|
||||
if ((tex_cube_map_seamless || sampler->CubeMapSeamless) &&
|
||||
!(brw->gen == 7 && !brw->is_haswell && is_integer_format)) {
|
||||
wrap_s = BRW_TEXCOORDMODE_CUBE;
|
||||
wrap_t = BRW_TEXCOORDMODE_CUBE;
|
||||
wrap_r = BRW_TEXCOORDMODE_CUBE;
|
||||
|
||||
Reference in New Issue
Block a user