mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
gallium/u_threaded: call the driver to pin threads to L3 immediately
This is thread-safe and we want it to be done immediately for good L3 cache usage. Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4369>
This commit is contained in:
parent
4de35bed42
commit
4df3c7a207
1 changed files with 14 additions and 6 deletions
|
|
@ -1936,6 +1936,20 @@ tc_set_context_param(struct pipe_context *_pipe,
|
|||
{
|
||||
struct threaded_context *tc = threaded_context(_pipe);
|
||||
|
||||
if (param == PIPE_CONTEXT_PARAM_PIN_THREADS_TO_L3_CACHE) {
|
||||
/* Pin the gallium thread as requested. */
|
||||
util_pin_thread_to_L3(tc->queue.threads[0], value,
|
||||
util_cpu_caps.cores_per_L3);
|
||||
|
||||
/* Execute this immediately (without enqueuing).
|
||||
* It's required to be thread-safe.
|
||||
*/
|
||||
struct pipe_context *pipe = tc->pipe;
|
||||
if (pipe->set_context_param)
|
||||
pipe->set_context_param(pipe, param, value);
|
||||
return;
|
||||
}
|
||||
|
||||
if (tc->pipe->set_context_param) {
|
||||
struct tc_context_param *payload =
|
||||
tc_add_struct_typed_call(tc, TC_CALL_set_context_param,
|
||||
|
|
@ -1944,12 +1958,6 @@ tc_set_context_param(struct pipe_context *_pipe,
|
|||
payload->param = param;
|
||||
payload->value = value;
|
||||
}
|
||||
|
||||
if (param == PIPE_CONTEXT_PARAM_PIN_THREADS_TO_L3_CACHE) {
|
||||
/* Pin the gallium thread as requested. */
|
||||
util_pin_thread_to_L3(tc->queue.threads[0], value,
|
||||
util_cpu_caps.cores_per_L3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue