From 96dfed49e47eac7afc100e5b8d3b316dd6652fb6 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 18 Jul 2016 16:25:12 -0700 Subject: i965: Stop muging cube array lengths by 6 From the Sky Lake PRM: "For SURFTYPE_CUBE: For Sampling Engine Surfaces and Typed Data Port Surfaces, the range of this field is [0,340], indicating the number of cube array elements (equal to the number of underlying 2D array elements divided by 6). For other surfaces, this field must be zero." In other words, the depth field for cube maps is in number of cubes not number of 2-D slices so we need to divide by 6. ISL will do this correctly for us assuming that we provide it with the correct array bounds which it expects to be in 2-D slices. It appears as if we've been doing this wrong ever since we first added cube map arrays for Sandy Bridge and the change to ISL made things slightly worse. While we're at it, we now need to remoe the shader hacks we've always done since they were only needed because we were setting the depth field six times too large. v2: Fix the vec4 backend as well (not sure how I missed this). Signed-off-by: Jason Ekstrand Reviewed-by: Iago Toral Quiroga Reviewed-by: Chris Forbes --- src/mesa/drivers/dri/i965/brw_vec4.h | 1 - 1 file changed, 1 deletion(-) (limited to 'src/mesa/drivers/dri/i965/brw_vec4.h') diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h index 3043147..d544e71 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.h +++ b/src/mesa/drivers/dri/i965/brw_vec4.h @@ -259,7 +259,6 @@ public: uint32_t constant_offset, src_reg offset_value, src_reg mcs, - bool is_cube_array, uint32_t surface, src_reg surface_reg, uint32_t sampler, src_reg sampler_reg); -- cgit v1.1