projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
llvmpipe: add LP_NEW_GS flag for updating vertex info
[mesa.git]
/
src
/
gallium
/
state_trackers
/
nine
/
device9.c
diff --git
a/src/gallium/state_trackers/nine/device9.c
b/src/gallium/state_trackers/nine/device9.c
index 6f97ddd647b518c423f0706c3b18cd441bd04302..88df38c43f69f02b1110261f12b2d1eda853de15 100644
(file)
--- a/
src/gallium/state_trackers/nine/device9.c
+++ b/
src/gallium/state_trackers/nine/device9.c
@@
-2856,7
+2856,6
@@
NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This,
UINT VertexStreamZeroStride )
{
struct pipe_vertex_buffer vbuf;
UINT VertexStreamZeroStride )
{
struct pipe_vertex_buffer vbuf;
- struct pipe_index_buffer ibuf;
DBG("iface %p, PrimitiveType %u, MinVertexIndex %u, NumVertices %u "
"PrimitiveCount %u, pIndexData %p, IndexDataFormat %u "
DBG("iface %p, PrimitiveType %u, MinVertexIndex %u, NumVertices %u "
"PrimitiveCount %u, pIndexData %p, IndexDataFormat %u "
@@
-2876,10
+2875,8
@@
NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This,
vbuf.is_user_buffer = true;
vbuf.buffer.user = pVertexStreamZeroData;
vbuf.is_user_buffer = true;
vbuf.buffer.user = pVertexStreamZeroData;
- ibuf.index_size = (IndexDataFormat == D3DFMT_INDEX16) ? 2 : 4;
- ibuf.offset = 0;
- ibuf.buffer = NULL;
- ibuf.user_buffer = pIndexData;
+ unsigned index_size = (IndexDataFormat == D3DFMT_INDEX16) ? 2 : 4;
+ struct pipe_resource *ibuf = NULL;
if (!This->driver_caps.user_vbufs) {
const unsigned base = MinVertexIndex * VertexStreamZeroStride;
if (!This->driver_caps.user_vbufs) {
const unsigned base = MinVertexIndex * VertexStreamZeroStride;
@@
-2896,16
+2893,17
@@
NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This,
/* Won't be used: */
vbuf.buffer_offset -= base;
}
/* Won't be used: */
vbuf.buffer_offset -= base;
}
+
+ unsigned index_offset = 0;
if (This->csmt_active) {
u_upload_data(This->pipe_secondary->stream_uploader,
0,
if (This->csmt_active) {
u_upload_data(This->pipe_secondary->stream_uploader,
0,
- (prim_count_to_vertex_count(PrimitiveType, PrimitiveCount)) * i
buf.i
ndex_size,
+ (prim_count_to_vertex_count(PrimitiveType, PrimitiveCount)) * index_size,
4,
4,
-
ibuf.user_buffer
,
- &i
buf.
offset,
- &ibuf
.buffer
);
+
pIndexData
,
+ &i
ndex_
offset,
+ &ibuf);
u_upload_unmap(This->pipe_secondary->stream_uploader);
u_upload_unmap(This->pipe_secondary->stream_uploader);
- ibuf.user_buffer = NULL;
}
NineBeforeDraw(This);
}
NineBeforeDraw(This);
@@
-2914,11
+2912,14
@@
NineDevice9_DrawIndexedPrimitiveUP( struct NineDevice9 *This,
NumVertices,
PrimitiveCount,
&vbuf,
NumVertices,
PrimitiveCount,
&vbuf,
- &ibuf);
+ ibuf,
+ ibuf ? NULL : (void*)pIndexData,
+ index_offset,
+ index_size);
NineAfterDraw(This);
pipe_vertex_buffer_unreference(&vbuf);
NineAfterDraw(This);
pipe_vertex_buffer_unreference(&vbuf);
- pipe_resource_reference(&ibuf
.buffer
, NULL);
+ pipe_resource_reference(&ibuf, NULL);
NineDevice9_PauseRecording(This);
NineDevice9_SetIndices(This, NULL);
NineDevice9_PauseRecording(This);
NineDevice9_SetIndices(This, NULL);
@@
-3031,9
+3032,8
@@
NineDevice9_ProcessVertices( struct NineDevice9 *This,
draw.restart_index = 0;
draw.count_from_stream_output = NULL;
draw.indirect = NULL;
draw.restart_index = 0;
draw.count_from_stream_output = NULL;
draw.indirect = NULL;
- draw.indirect_params = NULL;
draw.instance_count = 1;
draw.instance_count = 1;
- draw.index
ed = FALSE
;
+ draw.index
_size = 0
;
draw.start = 0;
draw.index_bias = 0;
draw.min_index = 0;
draw.start = 0;
draw.index_bias = 0;
draw.min_index = 0;