diff options
author | Christoph Bumiller <[email protected]> | 2014-02-07 22:51:27 +0100 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2014-02-07 22:53:37 +0100 |
commit | dd2229d4c68ed78a50104637aef904f8ab6d7dd3 (patch) | |
tree | 5b69bc2c5dba56366cdf72a8d4e3ee3a8e7edbe5 | |
parent | b7233acf782a39c7e5643cb303022360664b6046 (diff) |
nvc0: create the SW object
It's required for being able to use software methods now.
-rw-r--r-- | src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 9 | ||||
-rw-r--r-- | src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index 752d72b5944..6bf0a3a3093 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -361,6 +361,7 @@ nvc0_screen_destroy(struct pipe_screen *pscreen) nouveau_object_del(&screen->eng2d); nouveau_object_del(&screen->m2mf); nouveau_object_del(&screen->compute); + nouveau_object_del(&screen->nvsw); nouveau_screen_fini(&screen->base); @@ -597,6 +598,14 @@ nvc0_screen_create(struct nouveau_device *dev) screen->base.fence.emit = nvc0_screen_fence_emit; screen->base.fence.update = nvc0_screen_fence_update; + + ret = nouveau_object_new(chan, + (dev->chipset < 0xe0) ? 0x1f906e : 0x906e, 0x906e, + NULL, 0, &screen->nvsw); + if (ret) + FAIL_SCREEN_INIT("Error creating SW object: %d\n", ret); + + switch (dev->chipset & ~0xf) { case 0x100: case 0xf0: diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.h b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.h index 27a0c5f784d..c58add53788 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.h +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.h @@ -76,6 +76,7 @@ struct nvc0_screen { struct nouveau_object *eng2d; struct nouveau_object *m2mf; struct nouveau_object *compute; + struct nouveau_object *nvsw; }; static INLINE struct nvc0_screen * |