intel: Shader must be multiple of 64bytes in size
diff --git a/icd/intel/shader.c b/icd/intel/shader.c
index a86e6c5..56ffd9a 100644
--- a/icd/intel/shader.c
+++ b/icd/intel/shader.c
@@ -69,13 +69,18 @@
shader->dev = dev;
+ /*
+ * shaders have to be aligned to 64byte boundaries for both starting
+ * offset (done when copying to a BO) and size.
+ */
+ shader->codeSize = u_align(pCreateInfo->codeSize, 64);
+
shader->pCode = icd_alloc(pCreateInfo->codeSize, 4, XGL_SYSTEM_ALLOC_INTERNAL_SHADER);
if (shader->pCode == NULL) {
intel_base_destroy(&shader->obj.base);
return XGL_ERROR_OUT_OF_MEMORY;
}
- /* shaders have to be aligned to 64byte boundaries */
- shader->codeSize = u_align(pCreateInfo->codeSize, 64);
+
shader->obj.destroy = shader_destroy;
// TODO: Shader pre-processing