summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvadym.shovkoplias <[email protected]>2018-05-24 14:16:46 +0300
committerRafael Antognolli <[email protected]>2018-07-27 10:07:44 -0700
commit399228ecad37f420be3028165b94d5d8d33516fc (patch)
treee23a053570a7c0aee27e81b5c53a3981ab42ae3d
parent665fc9cf55d820dedfbfc6e2d1ab31e6ba4a2c20 (diff)
i965: Disable guardband clipping on SandyBridge for odd dimensions
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104388 Signed-off-by: Andriy Khulap <[email protected]> Acked-by: Rafael Antognolli <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/genX_state_upload.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c
index 9e0a17b9d93..672035c36ef 100644
--- a/src/mesa/drivers/dri/i965/genX_state_upload.c
+++ b/src/mesa/drivers/dri/i965/genX_state_upload.c
@@ -2508,6 +2508,17 @@ brw_calculate_guardband_size(uint32_t fb_width, uint32_t fb_height,
*/
const float gb_size = GEN_GEN >= 7 ? 16384.0f : 8192.0f;
+ /* Workaround: prevent gpu hangs on SandyBridge
+ * by disabling guardband clipping for odd dimensions.
+ */
+ if (GEN_GEN == 6 && (fb_width & 1 || fb_height & 1)) {
+ *xmin = -1.0f;
+ *xmax = 1.0f;
+ *ymin = -1.0f;
+ *ymax = 1.0f;
+ return;
+ }
+
if (m00 != 0 && m11 != 0) {
/* First, we compute the screen-space render area */
const float ss_ra_xmin = MIN3( 0, m30 + m00, m30 - m00);