summaryrefslogtreecommitdiffstats
path: root/src/mesa/program/prog_statevars.h
diff options
context:
space:
mode:
authorBen Crocker <[email protected]>2019-11-13 20:27:24 +0000
committerDylan Baker <[email protected]>2019-11-20 08:24:09 -0800
commitae071434e918586ab88a6533cd4a3b3f3dbd5a1f (patch)
tree99634dc6dd18d7f8d2b4fde590848b63d3ac3eba /src/mesa/program/prog_statevars.h
parent60c299c542d4eea01ee274eae6a38dafdaae2362 (diff)
llvmpipe: use ppc64le/ppc64 Large code model for JIT-compiled shaders
Large programs, e.g. gnome-shell and firefox, may tax the addressability of the Medium code model once a (potentially unbounded) number of dynamically generated JIT-compiled shader programs are linked in and relocated. Yet the default code model as of LLVM 8 is Medium or even Small. The cost of changing from Medium to Large is negligible: - an additional 8-byte pointer stored immediately before the shader entrypoint; - change an add-immediate (addis) instruction to a load (ld). Testing with WebGL Conformance (https://www.khronos.org/registry/webgl/sdk/tests/webgl-conformance-tests.html) yields clean runs with this change (and crashes without it). Testing with glxgears shows no detectable performance difference. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1753327, 1753789, 1543572, 1747110, and 1582226 Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/223 Co-authored by: Nemanja Ivanovic <[email protected]>, Tom Stellard <[email protected]> CC: [email protected] Signed-off-by: Ben Crocker <[email protected]> (cherry picked from commit 9c3be6d21fa6a45852045d0286b80fb420f82fe3) Conflicts resolved Dylan (PIPE_ARCH -> UTIL_ARCH rename)
Diffstat (limited to 'src/mesa/program/prog_statevars.h')
0 files changed, 0 insertions, 0 deletions