Dont call exit() from the DRI driver, with AIGLX this is particularly nasty
This commit is contained in:
parent
d037c84c33
commit
6464787bfd
4 changed files with 13 additions and 8 deletions
|
|
@ -79,7 +79,8 @@ GLboolean nouveauCreateContext( const __GLcontextModes *glVisual,
|
|||
return GL_FALSE;
|
||||
|
||||
/* Create the hardware context */
|
||||
nouveauFifoInit(nmesa);
|
||||
if (!nouveauFifoInit(nmesa))
|
||||
return GL_FALSE;
|
||||
nouveauObjectInit(nmesa);
|
||||
|
||||
/* Init default driver functions then plug in our nouveau-specific functions
|
||||
|
|
|
|||
|
|
@ -109,19 +109,25 @@ void nouveauWaitForIdle(nouveauContextPtr nmesa)
|
|||
}
|
||||
|
||||
// here we call the fifo initialization ioctl and fill in stuff accordingly
|
||||
void nouveauFifoInit(nouveauContextPtr nmesa)
|
||||
GLboolean nouveauFifoInit(nouveauContextPtr nmesa)
|
||||
{
|
||||
drm_nouveau_fifo_alloc_t fifo_init;
|
||||
|
||||
int ret;
|
||||
ret=drmCommandWriteRead(nmesa->driFd, DRM_NOUVEAU_FIFO_ALLOC, &fifo_init, sizeof(fifo_init));
|
||||
if (ret)
|
||||
if (ret) {
|
||||
FATAL("Fifo initialization ioctl failed (returned %d)\n",ret);
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
if (drmMap(nmesa->driFd, fifo_init.cmdbuf, fifo_init.cmdbuf_size, &nmesa->fifo.buffer))
|
||||
if (drmMap(nmesa->driFd, fifo_init.cmdbuf, fifo_init.cmdbuf_size, &nmesa->fifo.buffer)) {
|
||||
FATAL("Unable to map the fifo\n",ret);
|
||||
if (drmMap(nmesa->driFd, fifo_init.ctrl, fifo_init.ctrl_size, &nmesa->fifo.mmio))
|
||||
return GL_FALSE;
|
||||
}
|
||||
if (drmMap(nmesa->driFd, fifo_init.ctrl, fifo_init.ctrl_size, &nmesa->fifo.mmio)) {
|
||||
FATAL("Unable to map the control regs\n",ret);
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
MESSAGE("Fifo init ok. Using context %d\n", fifo_init.channel);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ extern void WAIT_RING(nouveauContextPtr nmesa,u_int32_t size);
|
|||
}while(0)
|
||||
|
||||
extern void nouveauWaitForIdle(nouveauContextPtr nmesa);
|
||||
extern void nouveauFifoInit(nouveauContextPtr nmesa);
|
||||
extern GLboolean nouveauFifoInit(nouveauContextPtr nmesa);
|
||||
|
||||
#endif /* __NOUVEAU_FIFO_H__ */
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
fprintf(stderr, "File %s function %s line %d\n", __FILE__, __FUNCTION__, __LINE__); \
|
||||
fprintf(stderr, a, ## __VA_ARGS__);\
|
||||
fprintf(stderr, "***************************************************************************\n");\
|
||||
exit(0);\
|
||||
}while(0)
|
||||
|
||||
#define FATAL(a, ...) do{\
|
||||
|
|
@ -62,7 +61,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
fprintf(stderr, "File %s function %s line %d\n", __FILE__, __FUNCTION__, __LINE__); \
|
||||
fprintf(stderr, a, ## __VA_ARGS__);\
|
||||
fprintf(stderr, "***************************************************************************\n");\
|
||||
exit(0);\
|
||||
}while(0)
|
||||
|
||||
#endif /* __NOUVEAU_MSG_H__ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue