Skip to content

etnaviv: improve renderonly check in etna_resource_alloc

Here is the backtrace from my crash:

#0  0xb61d00fc in renderonly_create_gpu_import_for_resource (rsc=0xbeffeea0, ro=0x42a8b0, out_handle=0xbeffeec8) at ../../src/gitlab_mesa/src/gallium/auxiliary/renderonly/renderonly.c:126
#1  0xb61d9ebc in renderonly_scanout_for_resource (rsc=0xbeffeea0, ro=0x42a8b0, out_handle=0xbeffeec8) at ../../src/gitlab_mesa/src/gallium/auxiliary/renderonly/renderonly.h:72
#2  0xb61dab7a in etna_resource_alloc (pscreen=0x42ad50, layout=3, modifier=432345564227567618, templat=0xbeffef58) at ../../src/gitlab_mesa/src/gallium/drivers/etnaviv/etnaviv_resource.c:282
#3  0xb61daff0 in etna_resource_create_modifiers (pscreen=0x42ad50, templat=0xbeffefbc, modifiers=0x495ed0, count=3) at ../../src/gitlab_mesa/src/gallium/drivers/etnaviv/etnaviv_resource.c:445
#4  0xb5a30114 in dri2_create_image_common (_screen=0x420a60, width=160, height=160, format=4097, use=1, modifiers=0x495ed0, count=3, loaderPrivate=0x496680) at ../../src/gitlab_mesa/src/gallium/frontends/dri/dri2.c:1121
#5  0xb5a30216 in dri2_create_image_with_modifiers2 (dri_screen=0x420a60, width=160, height=160, format=4097, modifiers=0x495ed0, count=3, use=1, loaderPrivate=0x496680) at ../../src/gitlab_mesa/src/gallium/frontends/dri/dri2.c:1175
#6  0xb6ca1bbc in loader_dri_create_image (screen=0x420a60, image=0x4220a0, width=160, height=160, dri_format=4097, dri_usage=1, modifiers=0x495ed0, modifiers_count=3, loaderPrivate=0x496680)
    at ../../src/gitlab_mesa/src/loader/loader_dri_helper.c:61
#7  0xb6ca142a in gbm_dri_bo_create (gbm=0x418e10, width=160, height=160, format=909199186, usage=0, modifiers=0x495ed0, count=3) at ../../src/gitlab_mesa/src/gbm/backends/dri/gbm_dri.c:1231
#8  0xb6c9f74e in gbm_bo_create_with_modifiers (gbm=0x418e10, width=160, height=160, format=909199186, modifiers=0x495ed0, count=3) at ../../src/gitlab_mesa/src/gbm/main/gbm.c:510
#9  0xb6896efa in get_back_bo (dri2_surf=0x495ef0) at ../../src/gitlab_mesa/src/egl/drivers/dri2/platform_drm.c:248
#10 0xb689728c in dri2_drm_image_get_buffers (driDrawable=0x42a690, format=4097, stamp=0x496130, loaderPrivate=0x495ef0, buffer_mask=1, buffers=0xbefff20c) at ../../src/gitlab_mesa/src/egl/drivers/dri2/platform_drm.c:405
#11 0xb6c9fdfc in image_get_buffers (driDrawable=0x42a690, format=4097, stamp=0x496130, loaderPrivate=0x495ea8, buffer_mask=1, buffers=0xbefff20c) at ../../src/gitlab_mesa/src/gbm/backends/dri/gbm_dri.c:162
#12 0xb5a2ecca in dri_image_drawable_get_buffers (drawable=0x496130, images=0xbefff20c, statts=0x4965d8, statts_count=1) at ../../src/gitlab_mesa/src/gallium/frontends/dri/dri2.c:283
#13 0xb5a2efae in dri2_allocate_textures (ctx=0x479150, drawable=0x496130, statts=0x4965d8, statts_count=1) at ../../src/gitlab_mesa/src/gallium/frontends/dri/dri2.c:418
#14 0xb5a32af2 in dri_st_framebuffer_validate (stctx=0x492c28, stfbi=0x496130, statts=0x4965d8, count=1, out=0xbefff32c) at ../../src/gitlab_mesa/src/gallium/frontends/dri/dri_drawable.c:82
#15 0xb5a8a616 in st_framebuffer_validate (stfb=0x4962b8, st=0x492c28) at ../../src/gitlab_mesa/src/mesa/state_tracker/st_manager.c:222
#16 0xb5a8ba5e in st_api_make_current (stapi=0xb639f7c8 <st_gl_api>, stctxi=0x492c28, stdrawi=0x496130, streadi=0x496130) at ../../src/gitlab_mesa/src/mesa/state_tracker/st_manager.c:1102
#17 0xb5a32222 in dri_make_current (cPriv=0x479130, driDrawPriv=0x42a690, driReadPriv=0x42a690) at ../../src/gitlab_mesa/src/gallium/frontends/dri/dri_context.c:306
#18 0xb60f18e8 in driBindContext (pcp=0x479130, pdp=0x42a690, prp=0x42a690) at ../../src/gitlab_mesa/src/mesa/drivers/dri/common/dri_util.c:586
#19 0xb688f978 in dri2_make_current (disp=0x477cf0, dsurf=0x495ef0, rsurf=0x495ef0, ctx=0x472e90) at ../../src/gitlab_mesa/src/egl/drivers/dri2/egl_dri2.c:1811
#20 0xb688307a in eglMakeCurrent (dpy=0x477cf0, draw=0x495ef0, read=0x495ef0, ctx=0x472e90) at ../../src/gitlab_mesa/src/egl/main/eglapi.c:908
#21 0xb6c860fc in ?? () from /lib/arm-linux-gnueabihf/libwaffle-1.so.0

Merge request reports