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>