612b99d721
When the shader state is destroyed before the async shader compile is
done, we get a use after free in the async thread, as the shader state
it is operating on is gone. Fix this by dropping any pending job from
the async queue or wait for it to finish before destroying the state
by calling util_queue_drop_job.
Also call util_queue_fence_destroy, which would have caught this issue
by asserting that the queue_fence is in signalled state when the
shader state is destroyed.
Fixes:
|
||
---|---|---|
.. | ||
hw | ||
tests | ||
README | ||
etnaviv_asm.c | ||
etnaviv_asm.h | ||
etnaviv_blend.c | ||
etnaviv_blend.h | ||
etnaviv_blt.c | ||
etnaviv_blt.h | ||
etnaviv_clear_blit.c | ||
etnaviv_clear_blit.h | ||
etnaviv_compiler.c | ||
etnaviv_compiler.h | ||
etnaviv_compiler_cmdline.c | ||
etnaviv_compiler_nir.c | ||
etnaviv_compiler_nir.h | ||
etnaviv_compiler_nir_emit.c | ||
etnaviv_compiler_nir_liveness.c | ||
etnaviv_compiler_nir_ra.c | ||
etnaviv_context.c | ||
etnaviv_context.h | ||
etnaviv_debug.h | ||
etnaviv_disasm.c | ||
etnaviv_disasm.h | ||
etnaviv_disk_cache.c | ||
etnaviv_disk_cache.h | ||
etnaviv_emit.c | ||
etnaviv_emit.h | ||
etnaviv_etc2.c | ||
etnaviv_etc2.h | ||
etnaviv_fence.c | ||
etnaviv_fence.h | ||
etnaviv_format.c | ||
etnaviv_format.h | ||
etnaviv_internal.h | ||
etnaviv_nir.c | ||
etnaviv_nir.h | ||
etnaviv_nir_lower_ubo_to_uniform.c | ||
etnaviv_perfmon.c | ||
etnaviv_perfmon.h | ||
etnaviv_query.c | ||
etnaviv_query.h | ||
etnaviv_query_acc.c | ||
etnaviv_query_acc.h | ||
etnaviv_query_acc_occlusion.c | ||
etnaviv_query_acc_perfmon.c | ||
etnaviv_query_sw.c | ||
etnaviv_query_sw.h | ||
etnaviv_rasterizer.c | ||
etnaviv_rasterizer.h | ||
etnaviv_resource.c | ||
etnaviv_resource.h | ||
etnaviv_rs.c | ||
etnaviv_rs.h | ||
etnaviv_screen.c | ||
etnaviv_screen.h | ||
etnaviv_shader.c | ||
etnaviv_shader.h | ||
etnaviv_state.c | ||
etnaviv_state.h | ||
etnaviv_surface.c | ||
etnaviv_surface.h | ||
etnaviv_texture.c | ||
etnaviv_texture.h | ||
etnaviv_texture_desc.c | ||
etnaviv_texture_desc.h | ||
etnaviv_texture_state.c | ||
etnaviv_texture_state.h | ||
etnaviv_tiling.c | ||
etnaviv_tiling.h | ||
etnaviv_transfer.c | ||
etnaviv_transfer.h | ||
etnaviv_translate.h | ||
etnaviv_uniforms.c | ||
etnaviv_uniforms.h | ||
etnaviv_util.h | ||
etnaviv_zsa.c | ||
etnaviv_zsa.h | ||
meson.build |
README
Notes for the etnaviv gallium driver ------------------------------------ There are two ways how this driver might get used: - application opens kms device (kmscube, weston, ..) - X via xf86-video-armada For the kms device case we provide a renderonly based driver like imx where all the magic for buffer import and export between kms and renderonly GPU is handled automaticly. For X/xf86-video-armada we need to provide etnaviv_dri.so.