summaryrefslogtreecommitdiff
path: root/src/gallium
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/r300/r300_context.c2
-rw-r--r--src/gallium/drivers/r300/r300_context.h1
-rw-r--r--src/gallium/drivers/r300/r300_winsys.h3
-rw-r--r--src/gallium/winsys/drm/amd/amd_context.c4
-rw-r--r--src/gallium/winsys/drm/amd/amd_r300.c4
-rw-r--r--src/gallium/winsys/drm/amd/amd_r300.h2
6 files changed, 12 insertions, 4 deletions
diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c
index 798d6bdc6f..467594ec9b 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -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;
diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h
index be6214b7ae..f4d801480a 100644
--- a/src/gallium/drivers/r300/r300_context.h
+++ b/src/gallium/drivers/r300/r300_context.h
@@ -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 */
diff --git a/src/gallium/drivers/r300/r300_winsys.h b/src/gallium/drivers/r300/r300_winsys.h
index 7711dc792d..319152c853 100644
--- a/src/gallium/drivers/r300/r300_winsys.h
+++ b/src/gallium/drivers/r300/r300_winsys.h
@@ -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. */
diff --git a/src/gallium/winsys/drm/amd/amd_context.c b/src/gallium/winsys/drm/amd/amd_context.c
index 7784964867..53311684de 100644
--- a/src/gallium/winsys/drm/amd/amd_context.c
+++ b/src/gallium/winsys/drm/amd/amd_context.c
@@ -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);
}
diff --git a/src/gallium/winsys/drm/amd/amd_r300.c b/src/gallium/winsys/drm/amd/amd_r300.c
index 0f543df9e1..a7a70fdd7f 100644
--- a/src/gallium/winsys/drm/amd/amd_r300.c
+++ b/src/gallium/winsys/drm/amd/amd_r300.c
@@ -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;
diff --git a/src/gallium/winsys/drm/amd/amd_r300.h b/src/gallium/winsys/drm/amd/amd_r300.h
index ef269454b3..0d229fe0c4 100644
--- a/src/gallium/winsys/drm/amd/amd_r300.h
+++ b/src/gallium/winsys/drm/amd/amd_r300.h
@@ -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);