r300: Add path for pci_id in winsys.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Tue, 20 Jan 2009 09:49:34 +0000 (01:49 -0800)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Mon, 2 Feb 2009 07:30:24 +0000 (23:30 -0800)
Needs to be hooked up to the getparam from the kernel.

src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_context.h
src/gallium/drivers/r300/r300_winsys.h
src/gallium/winsys/drm/amd/amd_context.c
src/gallium/winsys/drm/amd/amd_r300.c
src/gallium/winsys/drm/amd/amd_r300.h

index 798d6bdc6f5c0ecfef7e679f4eaf37b87b35c791..467594ec9b6ef71237d7e3225e9b476f7fd11a4a 100644 (file)
@@ -43,7 +43,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen,
 
     r300->winsys = r300_winsys;
     r300->context.winsys = winsys;
-    r300->context.screen = r300_create_screen(winsys, 0x0);
+    r300->context.screen = r300_create_screen(winsys, r300_winsys->pci_id);
 
     r300->context.destroy = r300_destroy_context;
 
index be6214b7ae6c07497f54619932d49570031d86c3..f4d801480a633e96b87e263418f5121d11b47163 100644 (file)
@@ -28,6 +28,7 @@
 #include "util/u_memory.h"
 
 #include "r300_screen.h"
+#include "r300_winsys.h"
 
 struct r300_blend_state {
     uint32_t blend_control;       /* R300_RB3D_CBLEND: 0x4e04 */
index 7711dc792d6dcf3f09243b3d089c672c279bb1f0..319152c853675b9678f6909fd28dbad4dd53d291 100644 (file)
@@ -38,6 +38,9 @@ struct radeon_cs;
 
 struct r300_winsys {
 
+    /* PCI ID */
+    uint32_t pci_id;
+
     /* CS object. This is very much like Intel's batchbuffer.
      * Fill it full of dwords and relocs and then submit.
      * Repeat as needed. */
index 7784964867f7a9168d4e5504f612546aaa9e1f52..53311684ded786ac2647003056a92f0097bea6b6 100644 (file)
@@ -244,9 +244,11 @@ GLboolean amd_context_create(const __GLcontextModes *visual,
 
     if (GL_TRUE) {
         fprintf(stderr, "Creating r300 context...");
+        /* XXX today we pretend to be a very lame R300    vvvvvv */
         pipe = r300_create_context(NULL,
                                    amd_context->pipe_winsys,
-                                   amd_create_r300_winsys(amd_context->drm_fd));
+                                   amd_create_r300_winsys(amd_context->drm_fd,
+                                                          0x4144));
     } else {
         pipe = amd_create_softpipe(amd_context);
     }
index 0f543df9e10c0a99d2f3eadba93ea5bd99bd467f..a7a70fdd7ff03d76ec94c8bdd74788954f6ba1f5 100644 (file)
@@ -43,12 +43,14 @@ static void amd_r300_flush_cs(struct radeon_cs* cs)
     radeon_cs_erase(cs);
 }
 
-struct r300_winsys* amd_create_r300_winsys(int fd)
+struct r300_winsys* amd_create_r300_winsys(int fd, uint32_t pci_id)
 {
     struct r300_winsys* winsys = calloc(1, sizeof(struct r300_winsys));
 
     struct radeon_cs_manager* csm = radeon_cs_manager_gem_ctor(fd);
 
+    winsys->pci_id = pci_id;
+
     winsys->cs = radeon_cs_create(csm, 1024 * 64 / 4);
 
     winsys->check_cs = amd_r300_check_cs;
index ef269454b373a15a792cbda299e8906d52ae9775..0d229fe0c4c69baedf78875613ca9afeaf6e12b3 100644 (file)
@@ -26,4 +26,4 @@
 
 #include "amd_buffer.h"
 
-struct r300_winsys* amd_create_r300_winsys(int fd);
+struct r300_winsys* amd_create_r300_winsys(int fd, uint32_t pci_id);