Date: Tue, 14 Sep 2010 15:13:07 +0200 (CEST) From: Oliver Fromme <olli@lurza.secnetix.de> To: freebsd-x11@FreeBSD.ORG Subject: ports/graphics/dri + WITHOUT_NOUVEAU=YES: strange problem Message-ID: <201009141313.o8EDD75p002136@lurza.secnetix.de>
next in thread | raw e-mail | index | archive | help
Hi, In order to get the latest DRI version with hardware 3D support for my ATI Radeon HD 4250, I recompiled the dri port with WITHOUT_NOUVEAU=YES. It breaks thusly: | radeon_screen.c: In function 'radeonCreateScreen': | radeon_screen.c:1025: error: 'R600_SCRATCH_REG_OFFSET' undeclared (first use in this function) The respective part of the source file is this: | if (screen->chip_family < CHIP_FAMILY_R600) | screen->scratch = (__volatile__ uint32_t *) | ((GLubyte *)screen->status.map + RADEON_SCRATCH_REG_OFFSET); | else | screen->scratch = (__volatile__ uint32_t *) | ((GLubyte *)screen->status.map + R600_SCRATCH_REG_OFFSET); Now, I don't have the slightest idea where those constants are supposed to come from. Neither R600_SCRATCH_REG_OFFSET nor RADEON_SCRATCH_REG_OFFSET are defined anywhere in the dri source tree, nor in /usr/include. They are, however, both defined in src/sys/dev/drm/radeon_drm.h: | #define RADEON_SCRATCH_REG_OFFSET 32 | #define R600_SCRATCH_REG_OFFSET 256 Then I made the following patch to the dri source: --- src/mesa/drivers/dri/radeon/radeon_screen.c.orig 2009-12-22 03:31:19.000000000 +0100 +++ src/mesa/drivers/dri/radeon/radeon_screen.c 2010-09-09 10:36:55.000000000 +0200 @@ -76,6 +76,10 @@ */ #include "xmlpool.h" +#ifndef R600_SCRATCH_REG_OFFSET +#define R600_SCRATCH_REG_OFFSET 256 +#endif + #define DRI_CONF_COMMAND_BUFFER_SIZE(def,min,max) \ DRI_CONF_OPT_BEGIN_V(command_buffer_size,int,def, # min ":" # max ) \ DRI_CONF_DESC(en,"Size of command buffer (in KB)") \ With that patch, the port compiles and works (after adding the PCI ID of my ATI Radeon HD 4250, but that's a different story). I still don't know where RADEON_SCRATCH_REG_OFFSET does come from. It's not defined in any included file, as far as i can see. Does someone have an explanation for this? Or maybe even provide a clean fix instead of that quick-hack? Best regards Oliver -- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M. Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung: secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün- chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd "What is this talk of 'release'? We do not make software 'releases'. Our software 'escapes', leaving a bloody trail of designers and quality assurance people in its wake."
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009141313.o8EDD75p002136>