radeonsi/gfx9: pad shader binaries by 128 bytes

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Marek Olšák 2017-02-07 23:45:47 +01:00
parent 5271d12a6e
commit b39fade67c

View file

@ -5872,6 +5872,12 @@ int si_shader_binary_upload(struct si_screen *sscreen, struct si_shader *shader)
assert((!prolog && !epilog) || !mainb->rodata_size); assert((!prolog && !epilog) || !mainb->rodata_size);
assert(!epilog || !epilog->rodata_size); assert(!epilog || !epilog->rodata_size);
/* GFX9 can fetch at most 128 bytes past the end of the shader.
* Prevent VM faults.
*/
if (sscreen->b.chip_class >= GFX9)
bo_size += 128;
r600_resource_reference(&shader->bo, NULL); r600_resource_reference(&shader->bo, NULL);
shader->bo = (struct r600_resource*) shader->bo = (struct r600_resource*)
pipe_buffer_create(&sscreen->b.b, 0, pipe_buffer_create(&sscreen->b.b, 0,