|
|
@ -575,6 +575,8 @@ std::pair<bool, bool> RasterizerOpenGL::ConfigureFramebuffers(
|
|
|
|
SetupCachedFramebuffer(fbkey, current_state);
|
|
|
|
SetupCachedFramebuffer(fbkey, current_state);
|
|
|
|
SyncViewport(current_state);
|
|
|
|
SyncViewport(current_state);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
res_cache.SignalPostFramebufferSetup();
|
|
|
|
|
|
|
|
|
|
|
|
return current_depth_stencil_usage = {static_cast<bool>(depth_surface), fbkey.stencil_enable};
|
|
|
|
return current_depth_stencil_usage = {static_cast<bool>(depth_surface), fbkey.stencil_enable};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -738,9 +740,13 @@ void RasterizerOpenGL::DrawArrays() {
|
|
|
|
shader_program_manager->ApplyTo(state);
|
|
|
|
shader_program_manager->ApplyTo(state);
|
|
|
|
state.Apply();
|
|
|
|
state.Apply();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
res_cache.SignalPreDrawCall();
|
|
|
|
|
|
|
|
|
|
|
|
// Execute draw call
|
|
|
|
// Execute draw call
|
|
|
|
params.DispatchDraw();
|
|
|
|
params.DispatchDraw();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
res_cache.SignalPostDrawCall();
|
|
|
|
|
|
|
|
|
|
|
|
// Disable scissor test
|
|
|
|
// Disable scissor test
|
|
|
|
state.viewports[0].scissor.enabled = false;
|
|
|
|
state.viewports[0].scissor.enabled = false;
|
|
|
|
|
|
|
|
|
|
|
@ -1013,6 +1019,7 @@ void RasterizerOpenGL::SetupTextures(Maxwell::ShaderStage stage, const Shader& s
|
|
|
|
texture_samplers[current_bindpoint].SyncWithConfig(texture.tsc);
|
|
|
|
texture_samplers[current_bindpoint].SyncWithConfig(texture.tsc);
|
|
|
|
|
|
|
|
|
|
|
|
Surface surface = res_cache.GetTextureSurface(texture, entry);
|
|
|
|
Surface surface = res_cache.GetTextureSurface(texture, entry);
|
|
|
|
|
|
|
|
res_cache.SignalSurfaceParameter(surface);
|
|
|
|
if (surface != nullptr) {
|
|
|
|
if (surface != nullptr) {
|
|
|
|
state.texture_units[current_bindpoint].texture =
|
|
|
|
state.texture_units[current_bindpoint].texture =
|
|
|
|
entry.IsArray() ? surface->TextureLayer().handle : surface->Texture().handle;
|
|
|
|
entry.IsArray() ? surface->TextureLayer().handle : surface->Texture().handle;
|
|
|
|