GPU/HW: Always unmap buffer on flush
Should stop assertions firing in some games.
This commit is contained in:
parent
ef2796b780
commit
ae4767a9ca
|
@ -723,17 +723,20 @@ void GPU_HW_D3D11::UpdateVRAMReadTexture()
|
||||||
|
|
||||||
void GPU_HW_D3D11::FlushRender()
|
void GPU_HW_D3D11::FlushRender()
|
||||||
{
|
{
|
||||||
const u32 vertex_count = GetBatchVertexCount();
|
if (!m_batch_current_vertex_ptr)
|
||||||
if (vertex_count == 0)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_renderer_stats.num_batches++;
|
const u32 vertex_count = GetBatchVertexCount();
|
||||||
|
|
||||||
m_vertex_stream_buffer.Unmap(m_context.Get(), vertex_count * sizeof(BatchVertex));
|
m_vertex_stream_buffer.Unmap(m_context.Get(), vertex_count * sizeof(BatchVertex));
|
||||||
m_batch_start_vertex_ptr = nullptr;
|
m_batch_start_vertex_ptr = nullptr;
|
||||||
m_batch_end_vertex_ptr = nullptr;
|
m_batch_end_vertex_ptr = nullptr;
|
||||||
m_batch_current_vertex_ptr = nullptr;
|
m_batch_current_vertex_ptr = nullptr;
|
||||||
|
|
||||||
|
if (vertex_count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_renderer_stats.num_batches++;
|
||||||
|
|
||||||
if (m_batch.NeedsTwoPassRendering())
|
if (m_batch.NeedsTwoPassRendering())
|
||||||
{
|
{
|
||||||
SetDrawState(BatchRenderMode::OnlyTransparent);
|
SetDrawState(BatchRenderMode::OnlyTransparent);
|
||||||
|
|
|
@ -819,19 +819,21 @@ void GPU_HW_OpenGL::UpdateVRAMReadTexture()
|
||||||
|
|
||||||
void GPU_HW_OpenGL::FlushRender()
|
void GPU_HW_OpenGL::FlushRender()
|
||||||
{
|
{
|
||||||
const u32 vertex_count = GetBatchVertexCount();
|
static constexpr std::array<GLenum, 4> gl_primitives = {{GL_LINES, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP}};
|
||||||
if (vertex_count == 0)
|
|
||||||
|
if (!m_batch_current_vertex_ptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_renderer_stats.num_batches++;
|
const u32 vertex_count = GetBatchVertexCount();
|
||||||
|
|
||||||
m_vertex_stream_buffer->Unmap(vertex_count * sizeof(BatchVertex));
|
m_vertex_stream_buffer->Unmap(vertex_count * sizeof(BatchVertex));
|
||||||
m_vertex_stream_buffer->Bind();
|
|
||||||
m_batch_start_vertex_ptr = nullptr;
|
m_batch_start_vertex_ptr = nullptr;
|
||||||
m_batch_end_vertex_ptr = nullptr;
|
m_batch_end_vertex_ptr = nullptr;
|
||||||
m_batch_current_vertex_ptr = nullptr;
|
m_batch_current_vertex_ptr = nullptr;
|
||||||
|
if (vertex_count == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
static constexpr std::array<GLenum, 4> gl_primitives = {{GL_LINES, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP}};
|
m_vertex_stream_buffer->Bind();
|
||||||
|
m_renderer_stats.num_batches++;
|
||||||
|
|
||||||
if (m_batch.NeedsTwoPassRendering())
|
if (m_batch.NeedsTwoPassRendering())
|
||||||
{
|
{
|
||||||
|
|
|
@ -639,18 +639,20 @@ void GPU_HW_OpenGL_ES::UpdateVRAMReadTexture()
|
||||||
|
|
||||||
void GPU_HW_OpenGL_ES::FlushRender()
|
void GPU_HW_OpenGL_ES::FlushRender()
|
||||||
{
|
{
|
||||||
|
static constexpr std::array<GLenum, 4> gl_primitives = {{GL_LINES, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP}};
|
||||||
|
|
||||||
|
if (!m_batch_current_vertex_ptr)
|
||||||
|
return;
|
||||||
|
|
||||||
const u32 vertex_count = GetBatchVertexCount();
|
const u32 vertex_count = GetBatchVertexCount();
|
||||||
|
m_batch_start_vertex_ptr = nullptr;
|
||||||
|
m_batch_end_vertex_ptr = nullptr;
|
||||||
|
m_batch_current_vertex_ptr = nullptr;
|
||||||
if (vertex_count == 0)
|
if (vertex_count == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_renderer_stats.num_batches++;
|
m_renderer_stats.num_batches++;
|
||||||
|
|
||||||
m_batch_start_vertex_ptr = nullptr;
|
|
||||||
m_batch_end_vertex_ptr = nullptr;
|
|
||||||
m_batch_current_vertex_ptr = nullptr;
|
|
||||||
|
|
||||||
static constexpr std::array<GLenum, 4> gl_primitives = {{GL_LINES, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP}};
|
|
||||||
|
|
||||||
if (m_batch.NeedsTwoPassRendering())
|
if (m_batch.NeedsTwoPassRendering())
|
||||||
{
|
{
|
||||||
SetDrawState(BatchRenderMode::OnlyTransparent);
|
SetDrawState(BatchRenderMode::OnlyTransparent);
|
||||||
|
|
Loading…
Reference in New Issue