i965: Use atomic ops in get_new_program_id().
We have a nice utility function for this, which eliminates the need for locking stuff. This isn't really performance critical, but it's less code to use the atomic. p_atomic_inc_return does pre-increment rather than post-increment, so we change screen->program_id to be initialized to 0 instead of 1. At which point, we can just delete the initialization because intel_screen is rzalloc'd. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
2eb26a9986
commit
962cc1bd17
|
@ -127,11 +127,7 @@ brw_create_nir(struct brw_context *brw,
|
|||
static unsigned
|
||||
get_new_program_id(struct intel_screen *screen)
|
||||
{
|
||||
static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
|
||||
pthread_mutex_lock(&m);
|
||||
unsigned id = screen->program_id++;
|
||||
pthread_mutex_unlock(&m);
|
||||
return id;
|
||||
return p_atomic_inc_return(&screen->program_id);
|
||||
}
|
||||
|
||||
static struct gl_program *brwNewProgram(struct gl_context *ctx, GLenum target,
|
||||
|
|
|
@ -2510,7 +2510,6 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
|
|||
screen->compiler->shader_debug_log = shader_debug_log_mesa;
|
||||
screen->compiler->shader_perf_log = shader_perf_log_mesa;
|
||||
screen->compiler->constant_buffer_0_is_relative = devinfo->gen < 8;
|
||||
screen->program_id = 1;
|
||||
|
||||
screen->has_exec_fence =
|
||||
intel_get_boolean(screen, I915_PARAM_HAS_EXEC_FENCE);
|
||||
|
|
Loading…
Reference in New Issue