summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/r300/r300_context.c')
-rw-r--r--src/gallium/drivers/r300/r300_context.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c
index 21bee5beae..68751dae17 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -41,10 +41,17 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen,
r300->winsys = amd_winsys;
r300->context.winsys = winsys;
- r300->context.screen = screen;
+ if (screen) {
+ r300->context.screen = screen;
+ } else {
+ /* XXX second arg should be pciid, find a way to get it from winsys */
+ r300->context.screen = r300_create_screen(winsys, 0x0);
+ }
r300->context.destroy = r300_destroy_context;
+ r300->draw = draw_create();
+
/* XXX this is almost certainly wrong
* put this all in winsys, where we can get an FD
struct radeon_cs_manager* csm = radeon_cs_manager_gem_ctor(fd);