summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine/buffer9.h
diff options
context:
space:
mode:
authorAxel Davy <[email protected]>2016-11-03 23:37:46 +0100
committerAxel Davy <[email protected]>2016-12-20 23:44:23 +0100
commit22f6d6fbd270333979c282627349eb74c06acd6b (patch)
treeb9d19d6dd8397b859fc817dd573a47eb7247fb78 /src/gallium/state_trackers/nine/buffer9.h
parent3e8234fff42022b12ff7bdbff052c75c71f5bedb (diff)
st/nine: Implement Fast path for dynamic buffers and csmt
Use the secondary pipe for DISCARD/NOOVERWRITE, which avoids stalling to get the pipe from the worker thread. v2: flush at unmap. This is required for example if the driver does hidden draw calls or copies. In the case of unsynchronized it is probably not required, but it is more safe. Signed-off-by: Axel Davy <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/nine/buffer9.h')
-rw-r--r--src/gallium/state_trackers/nine/buffer9.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/nine/buffer9.h b/src/gallium/state_trackers/nine/buffer9.h
index 49b67a9eaf9..d8024e4aac2 100644
--- a/src/gallium/state_trackers/nine/buffer9.h
+++ b/src/gallium/state_trackers/nine/buffer9.h
@@ -34,12 +34,17 @@ struct pipe_screen;
struct pipe_context;
struct pipe_transfer;
+struct NineTransfer {
+ struct pipe_transfer *transfer;
+ bool is_pipe_secondary;
+};
+
struct NineBuffer9
{
struct NineResource9 base;
/* G3D */
- struct pipe_transfer **maps;
+ struct NineTransfer *maps;
int nmaps, maxmaps;
UINT size;