wined3d: Avoid unnecessary memory allocations in nested command stream calls.
Sebastian Lackner
sebastian at fds-team.de
Fri Feb 17 09:54:45 CST 2017
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---
Depends on http://source.winehq.org/patches/data/130379.
If preferred, the patch can also be merged into the original commit.
dlls/wined3d/cs.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index 10905c0515a..bbae5add951 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -1608,15 +1608,14 @@ static void wined3d_cs_st_submit(struct wined3d_cs *cs)
data = cs->data;
start = cs->start;
cs->start = cs->end;
+
opcode = *(const enum wined3d_cs_op *)&data[start];
wined3d_cs_op_handlers[opcode](cs, &data[start]);
- if (!start)
- {
- if (cs->data != data)
- HeapFree(GetProcessHeap(), 0, data);
- else
- cs->start = cs->end = 0;
- }
+
+ if (cs->data == data)
+ cs->start = cs->end = start;
+ else if (!start)
+ HeapFree(GetProcessHeap(), 0, data);
}
static void wined3d_cs_st_push_constants(struct wined3d_cs *cs, enum wined3d_push_constants p,
--
2.11.0
More information about the wine-patches
mailing list