PDA

View Full Version : fglrx 13.20.5 OGL 4.3 CORE: glDrawElements causes Segmentation fault



YousryA
11-04-2013, 02:03 AM
Using glDrawElements with the draw mode GL_PATCHES for a shader without tessellation-evaluation or geometry shader causes a SEGV:


#0 0x00007f1325cb4d7d in ?? () from /usr/lib/fglrx/dri/fglrx_dri.so
#1 0x00007f1325d1aaa2 in ?? () from /usr/lib/fglrx/dri/fglrx_dri.so
#2 0x00007f1325cf90e0 in ?? () from /usr/lib/fglrx/dri/fglrx_dri.so
#3 0x00007f1325cf9533 in ?? () from /usr/lib/fglrx/dri/fglrx_dri.so
#4 0x00007f1324dd127b in ?? () from /usr/lib/fglrx/dri/fglrx_dri.so
#5 0x00007f1324ffffc4 in ?? () from /usr/lib/fglrx/dri/fglrx_dri.so
#6 0x00007f132500024b in ?? () from /usr/lib/fglrx/dri/fglrx_dri.so
#7 0x00007f13255940ac in ?? () from /usr/lib/fglrx/dri/fglrx_dri.so

Example (with drawMode = GL_PATCHES):

glDrawElementsInstanced(drawMode, patcheCount * patchSize, GL_UNSIGNED_INT, 0, instances);

mhagain
11-04-2013, 06:24 PM
Have you an attrib array enabled but no pointer set for it?

Alternatively - what is "instances" in your code? A syster-memory pointer? An offset into a buffer? Have you got things set up correctly for whichever it is?

YousryA
11-05-2013, 12:28 AM
Have you an attrib array enabled but no pointer set for it?

I checked my log:



[YATessellationModel] Patches: 14280
[YATessellationModel] attribVertexLocation 0 enabled




Alternatively - what is "instances" in your code? A syster-memory pointer? An offset into a buffer? Have you got things set up correctly for whichever it is?

Instances is defined as:

uint instances;

I accidentally activated my old shadow-map rendering, where several default shader programs are used. These are simple depth map renderer without GS or TS stages. In these cases the fglrx driver crashes with a buffer overrun. In my opinion this is an indication for an unhanded exception and at least annoying.