Forums - Adreno 510: deadlock would occur

1 post / 0 new
Adreno 510: deadlock would occur
river
Join Date: 13 Jan 21
Posts: 1
Posted: Wed, 2021-01-13 02:50

Hello there,

OpenGL ES 3.1 here. If I load my uniforms to the fragment shader the 'old way' , i.e. by declaring an array of uniforms as 'uniform ivec4 properties[10]' and loading them with 'glUniform4iv(...)' then everything works. If I however try to switch to an UBO:

#version 310 es

//...

layout (std140) uniform fProperties

   {

   ivec4 properties[10];

   };

CPU:

propertiesIndex = glGetUniformBlockIndex( programH, "fProperties" );

// declare a Uniform Buffer 'mUB', fill it up with values and load it....

int index = mUB.getIndex();

glBindBufferBase( GL_UNIFORM_BUFFER, 6, index );

glUniformBlockBinding( programH, propertiesIndex, 6);

then everything works on most GPUs, but on Adreno 510 I get

W/Adreno-GSL(30978): <gsl_ldd_control:475>: ioctl fd 26 code 0x400c0907 (IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID) failed: errno 35 Resource deadlock would occur
W/Adreno-GSL(30978): <log_gpu_snapshot:384>: panel.gpuSnapshotPath is not set.not generating user snapshot
W/Adreno-GSL(30978): <gsl_ldd_control:475>: ioctl fd 26 code 0xc0200933 (IOCTL_KGSL_TIMESTAMP_EVENT) failed: errno 22 Invalid argument
W/Adreno-GSL(30978): <ioctl_kgsl_syncobj_create:2979>: (1b, b, 2112) fail 22 Invalid argument
W/Adreno-GSL(30978): <gsl_ldd_control:475>: ioctl fd 26 code 0xc040094a (IOCTL_KGSL_GPU_COMMAND) failed: errno 35 Resource deadlock would occur
W/Adreno-GSL(30978): <log_gpu_snapshot:384>: panel.gpuSnapshotPath is not set.not generating user snapshot

and my app dies.

I use 3 different UBOs in my vertex shader, creaed and loaded in the very same way like the problematic one, and those 'vertex' UBOs work everywhere, including Adreno 510, so it's looking like the problem only occurs in the fragment shader.

I've been able to replicate this on an Adreno 510, and I also have bug reports from users running my app on devices sporting Adreno 506. I've tried running this on many other (about 20) devices with different GPUs, including some later Adrenos, and it appears to work there with no visible problems.

The GPU driver identifies itself as:

01-12 15:50:12.442 I/FA      (30978): Tag Manager is not found and thus will not be used
01-12 15:50:12.447 I/Adreno  (30978): QUALCOMM build                   : a7823f5, I59a6815413
01-12 15:50:12.447 I/Adreno  (30978): Build Date                       : 09/23/16
01-12 15:50:12.447 I/Adreno  (30978): OpenGL ES Shader Compiler Version: XE031.07.00.00
01-12 15:50:12.447 I/Adreno  (30978): Local Branch                     : mybranch22028469
01-12 15:50:12.447 I/Adreno  (30978): Remote Branch                    : quic/LA.BR.1.3.3_rb2.26
01-12 15:50:12.447 I/Adreno  (30978): Remote Branch                    : NONE
01-12 15:50:12.447 I/Adreno  (30978): Reconstruct Branch               : NOTHING

 

  • Up0
  • Down0

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.