Mesa (master): mesa: for every state change, remember states we changed for glPopAttrib
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sat Jan 30 21:52:58 UTC 2021
Module: Mesa
Branch: master
Commit: 674d275f590d05f1f14dbe40a6c77b6203206ac5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=674d275f590d05f1f14dbe40a6c77b6203206ac5
Author: Marek Olšák <marek.olsak at amd.com>
Date: Sat Dec 19 01:37:40 2020 -0500
mesa: for every state change, remember states we changed for glPopAttrib
The idea is to restore only those states in glPopAttrib that have been
changed. This will reduce glPopAttrib overhead a lot.
This is based on the state tables in the OpenGL 4.6 Compatibility Profile
specification and many extension specifications.
This code might superfluously flag GL_TEXTURE_BIT for texture and
sampler functions that don't have effect on states popped by glPopAttrib,
but I don't wanna test my luck and make a mistake. Thus,
if _NEW_TEXTURE_OBJECT if flagged, GL_TEXTURE_BIT is usually flagged too.
This has no effect on glPopAttrib yet. glPopAttrib will use this in a later
commit. This only adds attrib masks into FLUSH_VERTICES based on specs.
Reviewed-by: Zoltán Böszörményi <zboszor at gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8181>
---
src/mesa/drivers/common/meta.c | 12 +-
src/mesa/drivers/dri/i965/intel_screen.c | 2 +-
src/mesa/main/accum.c | 3 +-
src/mesa/main/arbprogram.c | 8 +-
src/mesa/main/atifragshader.c | 8 +-
src/mesa/main/attrib.c | 4 +-
src/mesa/main/blend.c | 28 +++--
src/mesa/main/blend.h | 6 +-
src/mesa/main/blit.c | 2 +-
src/mesa/main/bufferobj.c | 16 +--
src/mesa/main/buffers.c | 8 +-
src/mesa/main/clear.c | 14 ++-
src/mesa/main/clip.c | 2 +-
src/mesa/main/compute.c | 6 +-
src/mesa/main/condrender.c | 2 +-
src/mesa/main/conservativeraster.c | 4 +-
src/mesa/main/context.c | 6 +-
src/mesa/main/context.h | 3 +-
src/mesa/main/depth.c | 10 +-
src/mesa/main/dlist.c | 10 +-
src/mesa/main/drawpix.c | 7 +-
src/mesa/main/enable.c | 189 ++++++++++++++++++-------------
src/mesa/main/eval.c | 8 +-
src/mesa/main/externalobjects.c | 4 +-
src/mesa/main/fbobject.c | 18 +--
src/mesa/main/feedback.c | 16 +--
src/mesa/main/fog.c | 16 +--
src/mesa/main/genmipmap.c | 2 +-
src/mesa/main/hint.c | 16 +--
src/mesa/main/light.c | 38 +++----
src/mesa/main/lines.c | 4 +-
src/mesa/main/matrix.c | 23 ++--
src/mesa/main/mipmap.c | 1 +
src/mesa/main/mtypes.h | 1 +
src/mesa/main/multisample.c | 14 ++-
src/mesa/main/pipelineobj.c | 2 +-
src/mesa/main/pixel.c | 36 +++---
src/mesa/main/points.c | 12 +-
src/mesa/main/polygon.c | 21 ++--
src/mesa/main/queryobj.c | 6 +-
src/mesa/main/rastpos.c | 6 +-
src/mesa/main/readpix.c | 2 +-
src/mesa/main/samplerobj.c | 12 +-
src/mesa/main/scissor.c | 5 +-
src/mesa/main/shaderapi.c | 18 +--
src/mesa/main/shaderimage.c | 4 +-
src/mesa/main/state.c | 2 +-
src/mesa/main/stencil.c | 34 ++++--
src/mesa/main/texenv.c | 22 ++--
src/mesa/main/texgen.c | 6 +-
src/mesa/main/texgetimage.c | 4 +-
src/mesa/main/teximage.c | 16 +--
src/mesa/main/texobj.c | 25 ++--
src/mesa/main/texparam.c | 10 +-
src/mesa/main/texstate.c | 2 +-
src/mesa/main/transformfeedback.c | 8 +-
src/mesa/main/uniform_query.cpp | 8 +-
src/mesa/main/uniforms.c | 4 +-
src/mesa/main/viewport.c | 11 +-
src/mesa/state_tracker/st_cb_bitmap.c | 1 +
src/mesa/state_tracker/st_cb_rasterpos.c | 3 +
src/mesa/state_tracker/st_manager.c | 2 +-
src/mesa/vbo/vbo_exec_api.c | 5 +-
src/mesa/vbo/vbo_save_draw.c | 10 +-
64 files changed, 455 insertions(+), 353 deletions(-)
Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=674d275f590d05f1f14dbe40a6c77b6203206ac5
More information about the mesa-commit
mailing list