|
|
@@ -1975,7 +1975,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
{
|
|
|
ID3D11DeviceContext* deviceCtx = m_deviceCtx;
|
|
|
|
|
|
- m_indexBuffers [_blitter.m_ib->handle.idx].update(0, _numIndices*2, _blitter.m_ib->data);
|
|
|
+ m_indexBuffers [_blitter.m_ib->handle.idx].update(0, _numIndices*2, _blitter.m_ib->data, true);
|
|
|
m_vertexBuffers[_blitter.m_vb->handle.idx].update(0, numVertices*_blitter.m_decl.m_stride, _blitter.m_vb->data, true);
|
|
|
|
|
|
deviceCtx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
|
|
|
@@ -3619,8 +3619,6 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
|
|
|
#if 0
|
|
|
BX_UNUSED(_discard);
|
|
|
- ID3D11Device* device = s_renderD3D11->m_device;
|
|
|
-
|
|
|
D3D11_BUFFER_DESC desc;
|
|
|
desc.ByteWidth = _size;
|
|
|
desc.Usage = D3D11_USAGE_STAGING;
|
|
|
@@ -3634,17 +3632,19 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
srd.SysMemPitch = 0;
|
|
|
srd.SysMemSlicePitch = 0;
|
|
|
|
|
|
+ D3D11_BOX srcBox;
|
|
|
+ srcBox.left = 0;
|
|
|
+ srcBox.top = 0;
|
|
|
+ srcBox.front = 0;
|
|
|
+ srcBox.right = _size;
|
|
|
+ srcBox.bottom = 1;
|
|
|
+ srcBox.back = 1;
|
|
|
+
|
|
|
+ ID3D11Device* device = s_renderD3D11->m_device;
|
|
|
+
|
|
|
ID3D11Buffer* ptr;
|
|
|
DX_CHECK(device->CreateBuffer(&desc, &srd, &ptr) );
|
|
|
|
|
|
- D3D11_BOX box;
|
|
|
- box.left = 0;
|
|
|
- box.top = 0;
|
|
|
- box.front = 0;
|
|
|
- box.right = _size;
|
|
|
- box.bottom = 1;
|
|
|
- box.back = 1;
|
|
|
-
|
|
|
deviceCtx->CopySubresourceRegion(m_ptr
|
|
|
, 0
|
|
|
, _offset
|
|
|
@@ -3652,14 +3652,16 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
, 0
|
|
|
, ptr
|
|
|
, 0
|
|
|
- , &box
|
|
|
+ , &srcBox
|
|
|
);
|
|
|
|
|
|
DX_RELEASE(ptr, 0);
|
|
|
#else
|
|
|
D3D11_MAPPED_SUBRESOURCE mapped;
|
|
|
- BX_UNUSED(_discard);
|
|
|
- D3D11_MAP type = D3D11_MAP_WRITE_DISCARD;
|
|
|
+ D3D11_MAP type = _discard
|
|
|
+ ? D3D11_MAP_WRITE_DISCARD
|
|
|
+ : D3D11_MAP_WRITE_NO_OVERWRITE
|
|
|
+ ;
|
|
|
DX_CHECK(deviceCtx->Map(m_ptr, 0, type, 0, &mapped) );
|
|
|
memcpy( (uint8_t*)mapped.pData + _offset, _data, _size);
|
|
|
deviceCtx->Unmap(m_ptr, 0);
|
|
|
@@ -4666,13 +4668,13 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|
|
if (0 < _render->m_iboffset)
|
|
|
{
|
|
|
TransientIndexBuffer* ib = _render->m_transientIb;
|
|
|
- m_indexBuffers[ib->handle.idx].update(0, _render->m_iboffset, ib->data);
|
|
|
+ m_indexBuffers[ib->handle.idx].update(0, _render->m_iboffset, ib->data, true);
|
|
|
}
|
|
|
|
|
|
if (0 < _render->m_vboffset)
|
|
|
{
|
|
|
TransientVertexBuffer* vb = _render->m_transientVb;
|
|
|
- m_vertexBuffers[vb->handle.idx].update(0, _render->m_vboffset, vb->data);
|
|
|
+ m_vertexBuffers[vb->handle.idx].update(0, _render->m_vboffset, vb->data, true);
|
|
|
}
|
|
|
|
|
|
_render->sort();
|