mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 23:40:10 +01:00
glapi: stop using the remap table
The remap table adds an array lookup into 75% of CALL_* macros, which are used to call GL functions through the dispatch table. Removing the array lookup reduces overhead of dispatch table calls. Since libglapi is now required to be from the same build as libgallium, the remap table is no longer needed. This change doesn't remove the remapping table. It only disables it. Compare asm: Before: 0000000000000000 <_mesa_unmarshal_Uniform1f>: 0: f3 0f 1e fa endbr64 4: 48 83 ec 08 sub $0x8,%rsp 8: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # f <_mesa_unmarshal_Uniform1f+0xf> f: 8b 4e 04 mov 0x4(%rsi),%ecx 12: 31 d2 xor %edx,%edx 14: f3 0f 10 46 08 movss 0x8(%rsi),%xmm0 19: 48 63 80 a8 01 00 00 movslq 0x1a8(%rax),%rax 20: 85 c0 test %eax,%eax 22: 78 08 js 2c <_mesa_unmarshal_Uniform1f+0x2c> 24: 48 8b 57 40 mov 0x40(%rdi),%rdx 28: 48 8b 14 c2 mov (%rdx,%rax,8),%rdx 2c: 89 cf mov %ecx,%edi 2e: ff d2 call *%rdx 30: b8 02 00 00 00 mov $0x2,%eax 35: 48 83 c4 08 add $0x8,%rsp 39: c3 ret After: 0000000000000000 <_mesa_unmarshal_Uniform1f>: 0: f3 0f 1e fa endbr64 4: 48 89 f8 mov %rdi,%rax 7: 48 83 ec 08 sub $0x8,%rsp b: f3 0f 10 46 08 movss 0x8(%rsi),%xmm0 10: 8b 7e 04 mov 0x4(%rsi),%edi 13: 48 8b 40 40 mov 0x40(%rax),%rax 17: ff 90 10 10 00 00 call *0x1010(%rax) 1d: b8 02 00 00 00 mov $0x2,%eax 22: 48 83 c4 08 add $0x8,%rsp 26: c3 ret Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Reviewed-by: Eric Engestrom <None> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32789>
This commit is contained in:
parent
44bda7c258
commit
b22f682a31
1 changed files with 4 additions and 8 deletions
|
|
@ -20,18 +20,14 @@
|
|||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
|
||||
"""The maximum entries of actual static data required by indirect GLX."""
|
||||
|
||||
|
||||
MAX_OFFSETS = 407
|
||||
MAX_OFFSETS = 2 ** 31 # TODO: remove this
|
||||
|
||||
"""Table of functions that have ABI-mandated offsets in the dispatch table.
|
||||
|
||||
The first MAX_OFFSETS entries are required by indirect GLX. The rest are
|
||||
required to preserve the glapi <> GL/GLES ABI. This is to be addressed shortly.
|
||||
The first 407 entries are required by indirect GLX. The rest can use any
|
||||
numbers and don't need this table at all, but that removal is TODO.
|
||||
|
||||
This list will never change."""
|
||||
The first 407 entries will never change."""
|
||||
offsets = {
|
||||
"NewList": 0,
|
||||
"EndList": 1,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue