gallium/u_tests: use a compute-only context to test GCN compute ring
authorMarek Olšák <marek.olsak@amd.com>
Mon, 11 Feb 2019 19:33:32 +0000 (14:33 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 26 Feb 2019 19:58:55 +0000 (14:58 -0500)
src/gallium/auxiliary/util/u_tests.c

index 365d4fa8f171861628ffe78a8340d3c846341df9..7b87337bb986a15adde937f8caaec360e314098b 100644 (file)
@@ -790,11 +790,9 @@ test_texture_barrier(struct pipe_context *ctx, bool use_fbfetch,
 static void
 test_compute_clear_image(struct pipe_context *ctx)
 {
-   struct cso_context *cso;
    struct pipe_resource *cb;
    const char *text;
 
-   cso = cso_create_context(ctx, 0);
    cb = util_create_texture2d(ctx->screen, 256, 256,
                               PIPE_FORMAT_R8G8B8A8_UNORM, 1);
 
@@ -827,7 +825,7 @@ test_compute_clear_image(struct pipe_context *ctx)
    state.prog = tokens;
 
    void *compute_shader = ctx->create_compute_state(ctx, &state);
-   cso_set_compute_shader_handle(cso, compute_shader);
+   ctx->bind_compute_state(ctx, compute_shader);
 
    /* Bind the image. */
    struct pipe_image_view image = {0};
@@ -854,7 +852,6 @@ test_compute_clear_image(struct pipe_context *ctx)
                                     cb->width0, cb->height0, expected);
 
    /* Cleanup. */
-   cso_destroy_context(cso);
    ctx->delete_compute_state(ctx, compute_shader);
    pipe_resource_reference(&cb, NULL);
 
@@ -881,9 +878,10 @@ util_run_tests(struct pipe_screen *screen)
       test_texture_barrier(ctx, false, i);
    for (int i = 1; i <= 8; i = i * 2)
       test_texture_barrier(ctx, true, i);
+   ctx->destroy(ctx);
 
+   ctx = screen->context_create(screen, NULL, PIPE_CONTEXT_COMPUTE_ONLY);
    test_compute_clear_image(ctx);
-
    ctx->destroy(ctx);
 
    puts("Done. Exiting..");