From 87868d38328a3875881fe1ca6861eb7816a5b0cf Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Sun, 22 Mar 2015 11:49:03 +0100 Subject: [PATCH] st/nine: Add debug warning when application uses sw processing Reviewed-by: Ilia Mirkin Signed-off-by: Axel Davy --- src/gallium/state_trackers/nine/cubetexture9.c | 3 +++ src/gallium/state_trackers/nine/device9.c | 5 +++++ src/gallium/state_trackers/nine/indexbuffer9.c | 14 ++++++++------ src/gallium/state_trackers/nine/texture9.c | 5 +++++ src/gallium/state_trackers/nine/vertexbuffer9.c | 4 +++- src/gallium/state_trackers/nine/volumetexture9.c | 3 +++ 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/gallium/state_trackers/nine/cubetexture9.c b/src/gallium/state_trackers/nine/cubetexture9.c index e250315..d81cc70 100644 --- a/src/gallium/state_trackers/nine/cubetexture9.c +++ b/src/gallium/state_trackers/nine/cubetexture9.c @@ -93,6 +93,9 @@ NineCubeTexture9_ctor( struct NineCubeTexture9 *This, PIPE_BIND_TRANSFER_READ | PIPE_BIND_TRANSFER_WRITE; } + if (Usage & D3DUSAGE_SOFTWAREPROCESSING) + DBG("Application asked for Software Vertex Processing, " + "but this is unimplemented\n"); This->surfaces = CALLOC(6 * (info->last_level + 1), sizeof(*This->surfaces)); if (!This->surfaces) diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index 0bd1717..7ffede5 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -199,6 +199,11 @@ NineDevice9_ctor( struct NineDevice9 *This, if (!(This->params.BehaviorFlags & D3DCREATE_FPU_PRESERVE)) nine_setup_fpu(); + if (This->params.BehaviorFlags & D3DCREATE_SOFTWARE_VERTEXPROCESSING) + DBG("Application asked full Software Vertex Processing. Ignoring.\n"); + if (This->params.BehaviorFlags & D3DCREATE_MIXED_VERTEXPROCESSING) + DBG("Application asked mixed Software Vertex Processing. Ignoring.\n"); + This->pipe = This->screen->context_create(This->screen, NULL); if (!This->pipe) { return E_OUTOFMEMORY; } /* guess */ diff --git a/src/gallium/state_trackers/nine/indexbuffer9.c b/src/gallium/state_trackers/nine/indexbuffer9.c index 48553fd..860313b 100644 --- a/src/gallium/state_trackers/nine/indexbuffer9.c +++ b/src/gallium/state_trackers/nine/indexbuffer9.c @@ -63,12 +63,14 @@ NineIndexBuffer9_ctor( struct NineIndexBuffer9 *This, if (pDesc->Pool == D3DPOOL_SYSTEMMEM) info->usage = PIPE_USAGE_STAGING; - /* if (This->desc.Usage & D3DUSAGE_DONOTCLIP) { } */ - /* if (This->desc.Usage & D3DUSAGE_NONSECURE) { } */ - /* if (This->desc.Usage & D3DUSAGE_NPATCHES) { } */ - /* if (This->desc.Usage & D3DUSAGE_POINTS) { } */ - /* if (This->desc.Usage & D3DUSAGE_RTPATCHES) { } */ - /* if (This->desc.Usage & D3DUSAGE_SOFTWAREPROCESSING) { } */ + /* if (pDesc->Usage & D3DUSAGE_DONOTCLIP) { } */ + /* if (pDesc->Usage & D3DUSAGE_NONSECURE) { } */ + /* if (pDesc->Usage & D3DUSAGE_NPATCHES) { } */ + /* if (pDesc->Usage & D3DUSAGE_POINTS) { } */ + /* if (pDesc->Usage & D3DUSAGE_RTPATCHES) { } */ + if (pDesc->Usage & D3DUSAGE_SOFTWAREPROCESSING) + DBG("Application asked for Software Vertex Processing, " + "but this is unimplemented\n"); info->height0 = 1; info->depth0 = 1; diff --git a/src/gallium/state_trackers/nine/texture9.c b/src/gallium/state_trackers/nine/texture9.c index 0dbdd37..78a632f 100644 --- a/src/gallium/state_trackers/nine/texture9.c +++ b/src/gallium/state_trackers/nine/texture9.c @@ -125,6 +125,11 @@ NineTexture9_ctor( struct NineTexture9 *This, PIPE_BIND_TRANSFER_READ | PIPE_BIND_TRANSFER_WRITE; } + + if (Usage & D3DUSAGE_SOFTWAREPROCESSING) + DBG("Application asked for Software Vertex Processing, " + "but this is unimplemented\n"); + if (pSharedHandle) info->bind |= PIPE_BIND_SHARED; diff --git a/src/gallium/state_trackers/nine/vertexbuffer9.c b/src/gallium/state_trackers/nine/vertexbuffer9.c index 11cc60f..8e2eaaf 100644 --- a/src/gallium/state_trackers/nine/vertexbuffer9.c +++ b/src/gallium/state_trackers/nine/vertexbuffer9.c @@ -76,7 +76,9 @@ NineVertexBuffer9_ctor( struct NineVertexBuffer9 *This, /* if (pDesc->Usage & D3DUSAGE_NPATCHES) { } */ /* if (pDesc->Usage & D3DUSAGE_POINTS) { } */ /* if (pDesc->Usage & D3DUSAGE_RTPATCHES) { } */ - /* if (pDesc->Usage & D3DUSAGE_SOFTWAREPROCESSING) { } */ + if (pDesc->Usage & D3DUSAGE_SOFTWAREPROCESSING) + DBG("Application asked for Software Vertex Processing, " + "but this is unimplemented\n"); /* if (pDesc->Usage & D3DUSAGE_TEXTAPI) { } */ info->height0 = 1; diff --git a/src/gallium/state_trackers/nine/volumetexture9.c b/src/gallium/state_trackers/nine/volumetexture9.c index 6c0073f..08fdd3d 100644 --- a/src/gallium/state_trackers/nine/volumetexture9.c +++ b/src/gallium/state_trackers/nine/volumetexture9.c @@ -90,6 +90,9 @@ NineVolumeTexture9_ctor( struct NineVolumeTexture9 *This, PIPE_BIND_TRANSFER_READ | PIPE_BIND_TRANSFER_WRITE; } + if (Usage & D3DUSAGE_SOFTWAREPROCESSING) + DBG("Application asked for Software Vertex Processing, " + "but this is unimplemented\n"); This->volumes = CALLOC(info->last_level + 1, sizeof(*This->volumes)); if (!This->volumes) -- 2.7.4