Browse Source
Merge pull request #9943 from vonchenplus/gentleman
video_core: Fix inline_index and draw_texture error
pull/15/merge
liamwhite
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
3 additions and
2 deletions
-
src/video_core/engines/draw_manager.cpp
-
src/video_core/renderer_opengl/blit_image.cpp
-
src/video_core/renderer_opengl/gl_rasterizer.cpp
|
|
|
@ -164,6 +164,7 @@ void DrawManager::DrawEnd(u32 instance_count, bool force_draw) { |
|
|
|
draw_state.index_buffer.count = |
|
|
|
static_cast<u32>(draw_state.inline_index_draw_indexes.size() / 4); |
|
|
|
draw_state.index_buffer.format = Maxwell3D::Regs::IndexFormat::UnsignedInt; |
|
|
|
maxwell3d->dirty.flags[VideoCommon::Dirty::IndexBuffer] = true; |
|
|
|
ProcessDraw(true, instance_count); |
|
|
|
draw_state.inline_index_draw_indexes.clear(); |
|
|
|
break; |
|
|
|
|
|
|
|
@ -22,7 +22,7 @@ BlitImageHelper::~BlitImageHelper() = default; |
|
|
|
void BlitImageHelper::BlitColor(GLuint dst_framebuffer, GLuint src_image_view, GLuint src_sampler, |
|
|
|
const Region2D& dst_region, const Region2D& src_region, |
|
|
|
const Extent3D& src_size) { |
|
|
|
glEnable(GL_CULL_FACE); |
|
|
|
glDisable(GL_CULL_FACE); |
|
|
|
glDisable(GL_COLOR_LOGIC_OP); |
|
|
|
glDisable(GL_DEPTH_TEST); |
|
|
|
glDisable(GL_STENCIL_TEST); |
|
|
|
@ -31,7 +31,6 @@ void BlitImageHelper::BlitColor(GLuint dst_framebuffer, GLuint src_image_view, G |
|
|
|
glDisable(GL_ALPHA_TEST); |
|
|
|
glDisablei(GL_BLEND, 0); |
|
|
|
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); |
|
|
|
glCullFace(GL_BACK); |
|
|
|
glFrontFace(GL_CW); |
|
|
|
glColorMaski(0, GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); |
|
|
|
glDepthRangeIndexed(0, 0.0, 0.0); |
|
|
|
|
|
|
|
@ -357,6 +357,7 @@ void RasterizerOpenGL::DrawTexture() { |
|
|
|
.y = static_cast<s32>(draw_texture_state.src_y1)}}; |
|
|
|
blit_image.BlitColor(texture_cache.GetFramebuffer()->Handle(), texture.DefaultHandle(), |
|
|
|
sampler->Handle(), dst_region, src_region, texture.size); |
|
|
|
state_tracker.InvalidateState(); |
|
|
|
} |
|
|
|
|
|
|
|
++num_queued_commands; |
|
|
|
|