Henri Verbeet : wined3d: Also issue any queries for index buffers in drawPrimitive().
Alexandre Julliard
julliard at winehq.org
Mon Aug 20 14:16:18 CDT 2012
Module: wine
Branch: master
Commit: e35f773b0bbeb12e4af88c35fcacd25221f44505
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e35f773b0bbeb12e4af88c35fcacd25221f44505
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Mon Aug 20 08:12:09 2012 +0200
wined3d: Also issue any queries for index buffers in drawPrimitive().
---
dlls/wined3d/drawprim.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index 8df04a3..2aea660 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -580,6 +580,7 @@ static void remove_vbos(const struct wined3d_gl_info *gl_info,
void drawPrimitive(struct wined3d_device *device, UINT index_count, UINT StartIdx, BOOL indexed, const void *idxData)
{
const struct wined3d_state *state = &device->stateBlock->state;
+ struct wined3d_event_query *ib_query = NULL;
const struct wined3d_gl_info *gl_info;
struct wined3d_context *context;
unsigned int i;
@@ -683,7 +684,10 @@ void drawPrimitive(struct wined3d_device *device, UINT index_count, UINT StartId
if (!index_buffer->buffer_object || !stream_info->all_vbo)
idxData = index_buffer->resource.allocatedMemory;
else
+ {
+ ib_query = index_buffer->query;
idxData = NULL;
+ }
}
if (state->index_format == WINED3DFMT_R16_UINT)
@@ -764,7 +768,9 @@ void drawPrimitive(struct wined3d_device *device, UINT index_count, UINT StartId
/* Finished updating the screen, restore lock */
LEAVE_GL();
- for(i = 0; i < device->num_buffer_queries; ++i)
+ if (ib_query)
+ wined3d_event_query_issue(ib_query, device);
+ for (i = 0; i < device->num_buffer_queries; ++i)
{
wined3d_event_query_issue(device->buffer_queries[i], device);
}
More information about the wine-cvs
mailing list