mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 01:16:18 +00:00
gem_ctx_basic: fixes
I must have checked in the wrong version the first time. Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
This commit is contained in:
parent
e843c55370
commit
fbd6d04959
@ -40,6 +40,7 @@ int iter = 10000;
|
|||||||
|
|
||||||
/* globals */
|
/* globals */
|
||||||
pthread_t *threads;
|
pthread_t *threads;
|
||||||
|
int *returns;
|
||||||
int devid;
|
int devid;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
@ -59,6 +60,7 @@ static void *work(void *arg)
|
|||||||
struct intel_batchbuffer *batch;
|
struct intel_batchbuffer *batch;
|
||||||
drm_intel_context *context;
|
drm_intel_context *context;
|
||||||
drm_intel_bufmgr *bufmgr;
|
drm_intel_bufmgr *bufmgr;
|
||||||
|
int thread_id = *(int *)arg;
|
||||||
int td_fd;
|
int td_fd;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -73,9 +75,13 @@ static void *work(void *arg)
|
|||||||
batch = intel_batchbuffer_alloc(bufmgr, devid);
|
batch = intel_batchbuffer_alloc(bufmgr, devid);
|
||||||
context = drm_intel_gem_context_create(bufmgr);
|
context = drm_intel_gem_context_create(bufmgr);
|
||||||
|
|
||||||
|
if (!context) {
|
||||||
|
returns[thread_id] = 77;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < iter; i++) {
|
for (i = 0; i < iter; i++) {
|
||||||
struct scratch_buf src, dst;
|
struct scratch_buf src, dst;
|
||||||
uint32_t batch_len;
|
|
||||||
|
|
||||||
init_buffer(bufmgr, &src, 4096);
|
init_buffer(bufmgr, &src, 4096);
|
||||||
init_buffer(bufmgr, &dst, 4096);
|
init_buffer(bufmgr, &dst, 4096);
|
||||||
@ -91,6 +97,7 @@ static void *work(void *arg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
out:
|
||||||
drm_intel_gem_context_destroy(context);
|
drm_intel_gem_context_destroy(context);
|
||||||
intel_batchbuffer_free(batch);
|
intel_batchbuffer_free(batch);
|
||||||
drm_intel_bufmgr_destroy(bufmgr);
|
drm_intel_bufmgr_destroy(bufmgr);
|
||||||
@ -98,7 +105,7 @@ static void *work(void *arg)
|
|||||||
if (multiple_fds)
|
if (multiple_fds)
|
||||||
close(td_fd);
|
close(td_fd);
|
||||||
|
|
||||||
pthread_exit(NULL);
|
pthread_exit(&returns[thread_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void parse(int argc, char *argv[])
|
static void parse(int argc, char *argv[])
|
||||||
@ -129,7 +136,6 @@ static void parse(int argc, char *argv[])
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
void *ret;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
fd = drm_open_any();
|
fd = drm_open_any();
|
||||||
@ -138,15 +144,21 @@ int main(int argc, char *argv[])
|
|||||||
parse(argc, argv);
|
parse(argc, argv);
|
||||||
|
|
||||||
threads = calloc(num_contexts, sizeof(*threads));
|
threads = calloc(num_contexts, sizeof(*threads));
|
||||||
|
returns = calloc(num_contexts, sizeof(*returns));
|
||||||
|
|
||||||
for (i = 0; i < num_contexts; i++)
|
for (i = 0; i < num_contexts; i++)
|
||||||
pthread_create(&threads[i], NULL, work, NULL);
|
pthread_create(&threads[i], NULL, work, &i);
|
||||||
|
|
||||||
for (i = 0; i < num_contexts; i++) {
|
for (i = 0; i < num_contexts; i++) {
|
||||||
pthread_join(threads[i], &ret);
|
int thread_status, ret;
|
||||||
free(ret);
|
void *retval;
|
||||||
|
ret = pthread_join(threads[i], &retval);
|
||||||
|
thread_status = *(int *)retval;
|
||||||
|
if (!ret && thread_status)
|
||||||
|
exit(thread_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(returns);
|
||||||
free(threads);
|
free(threads);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user