From: Pan Xiuli <[email protected]>

CHV device have two kinds of EU numbers, this will make stack pointer
calculate wrong. Make it double for safe.

Signed-off-by: Pan Xiuli <[email protected]>
---
 src/cl_command_queue_gen7.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/cl_command_queue_gen7.c b/src/cl_command_queue_gen7.c
index 6a9cf1f..d1186c2 100644
--- a/src/cl_command_queue_gen7.c
+++ b/src/cl_command_queue_gen7.c
@@ -25,6 +25,7 @@
 #include "cl_mem.h"
 #include "cl_utils.h"
 #include "cl_alloc.h"
+#include "cl_device_data.h"
 
 #include <assert.h>
 #include <stdio.h>
@@ -278,6 +279,9 @@ cl_bind_stack(cl_gpgpu gpgpu, cl_kernel ker)
    */
   if(cl_driver_get_ver(ctx->drv) == 75)
     stack_sz *= 4;
+  /* Because CHV has two kind of EU numbers, multiply stack size with 2 for 
safe. */
+  if(IS_CHERRYVIEW(device->device_id))
+    stack_sz *= 2;
   cl_gpgpu_set_stack(gpgpu, offset, stack_sz, BTI_PRIVATE);
 }
 
-- 
2.7.4

_______________________________________________
Beignet mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to