mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-12-26 19:32:40 -06:00
Merge pull request #9943 from vonchenplus/gentleman
video_core: Fix inline_index and draw_texture error
This commit is contained in:
commit
638044820d
3 changed files with 3 additions and 2 deletions
|
@ -164,6 +164,7 @@ void DrawManager::DrawEnd(u32 instance_count, bool force_draw) {
|
||||||
draw_state.index_buffer.count =
|
draw_state.index_buffer.count =
|
||||||
static_cast<u32>(draw_state.inline_index_draw_indexes.size() / 4);
|
static_cast<u32>(draw_state.inline_index_draw_indexes.size() / 4);
|
||||||
draw_state.index_buffer.format = Maxwell3D::Regs::IndexFormat::UnsignedInt;
|
draw_state.index_buffer.format = Maxwell3D::Regs::IndexFormat::UnsignedInt;
|
||||||
|
maxwell3d->dirty.flags[VideoCommon::Dirty::IndexBuffer] = true;
|
||||||
ProcessDraw(true, instance_count);
|
ProcessDraw(true, instance_count);
|
||||||
draw_state.inline_index_draw_indexes.clear();
|
draw_state.inline_index_draw_indexes.clear();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -22,7 +22,7 @@ BlitImageHelper::~BlitImageHelper() = default;
|
||||||
void BlitImageHelper::BlitColor(GLuint dst_framebuffer, GLuint src_image_view, GLuint src_sampler,
|
void BlitImageHelper::BlitColor(GLuint dst_framebuffer, GLuint src_image_view, GLuint src_sampler,
|
||||||
const Region2D& dst_region, const Region2D& src_region,
|
const Region2D& dst_region, const Region2D& src_region,
|
||||||
const Extent3D& src_size) {
|
const Extent3D& src_size) {
|
||||||
glEnable(GL_CULL_FACE);
|
glDisable(GL_CULL_FACE);
|
||||||
glDisable(GL_COLOR_LOGIC_OP);
|
glDisable(GL_COLOR_LOGIC_OP);
|
||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
glDisable(GL_STENCIL_TEST);
|
glDisable(GL_STENCIL_TEST);
|
||||||
|
@ -31,7 +31,6 @@ void BlitImageHelper::BlitColor(GLuint dst_framebuffer, GLuint src_image_view, G
|
||||||
glDisable(GL_ALPHA_TEST);
|
glDisable(GL_ALPHA_TEST);
|
||||||
glDisablei(GL_BLEND, 0);
|
glDisablei(GL_BLEND, 0);
|
||||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||||
glCullFace(GL_BACK);
|
|
||||||
glFrontFace(GL_CW);
|
glFrontFace(GL_CW);
|
||||||
glColorMaski(0, GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
glColorMaski(0, GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||||
glDepthRangeIndexed(0, 0.0, 0.0);
|
glDepthRangeIndexed(0, 0.0, 0.0);
|
||||||
|
|
|
@ -357,6 +357,7 @@ void RasterizerOpenGL::DrawTexture() {
|
||||||
.y = static_cast<s32>(draw_texture_state.src_y1)}};
|
.y = static_cast<s32>(draw_texture_state.src_y1)}};
|
||||||
blit_image.BlitColor(texture_cache.GetFramebuffer()->Handle(), texture.DefaultHandle(),
|
blit_image.BlitColor(texture_cache.GetFramebuffer()->Handle(), texture.DefaultHandle(),
|
||||||
sampler->Handle(), dst_region, src_region, texture.size);
|
sampler->Handle(), dst_region, src_region, texture.size);
|
||||||
|
state_tracker.InvalidateState();
|
||||||
}
|
}
|
||||||
|
|
||||||
++num_queued_commands;
|
++num_queued_commands;
|
||||||
|
|
Loading…
Reference in a new issue