summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-10-19 20:21:45 -0700
committerJason Ekstrand <[email protected]>2015-10-20 13:02:03 -0700
commit6fb4469588ba37ace4794b354c9fd30d18b5c9ff (patch)
treeb955b34ac6473d334d3014fed456ada3dff9206d /src
parent9e3615cc7de8323075b907ae95c5e65c1c3e2fd7 (diff)
anv: Move the brw_compiler from anv_compiler to physical_device
Diffstat (limited to 'src')
-rw-r--r--src/vulkan/anv_compiler.cpp2
-rw-r--r--src/vulkan/anv_device.c13
-rw-r--r--src/vulkan/anv_private.h1
3 files changed, 15 insertions, 1 deletions
diff --git a/src/vulkan/anv_compiler.cpp b/src/vulkan/anv_compiler.cpp
index 5d74f0f131e..1ecd88a0331 100644
--- a/src/vulkan/anv_compiler.cpp
+++ b/src/vulkan/anv_compiler.cpp
@@ -460,7 +460,7 @@ anv_compiler_create(struct anv_device *device)
brw_process_intel_debug_variable();
- compiler->screen->compiler = brw_compiler_create(compiler, &device->info);
+ compiler->screen->compiler = device->instance->physicalDevice.compiler;
ctx = &compiler->brw->ctx;
_mesa_init_shader_object_functions(&ctx->Driver);
diff --git a/src/vulkan/anv_device.c b/src/vulkan/anv_device.c
index 75fbe691c5f..e0bb7f6e4bc 100644
--- a/src/vulkan/anv_device.c
+++ b/src/vulkan/anv_device.c
@@ -91,6 +91,12 @@ anv_physical_device_init(struct anv_physical_device *device,
close(fd);
+ device->compiler = brw_compiler_create(NULL, device->info);
+ if (device->compiler == NULL) {
+ result = vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
+ goto fail;
+ }
+
return VK_SUCCESS;
fail:
@@ -98,6 +104,12 @@ fail:
return result;
}
+static void
+anv_physical_device_finish(struct anv_physical_device *device)
+{
+ ralloc_free(device->compiler);
+}
+
static void *default_alloc(
void* pUserData,
size_t size,
@@ -193,6 +205,7 @@ void anv_DestroyInstance(
{
ANV_FROM_HANDLE(anv_instance, instance, _instance);
+ anv_physical_device_finish(&instance->physicalDevice);
anv_finish_wsi(instance);
VG(VALGRIND_DESTROY_MEMPOOL(instance));
diff --git a/src/vulkan/anv_private.h b/src/vulkan/anv_private.h
index c0d9373b643..8c48a9c2b0a 100644
--- a/src/vulkan/anv_private.h
+++ b/src/vulkan/anv_private.h
@@ -427,6 +427,7 @@ struct anv_physical_device {
const char * name;
const struct brw_device_info * info;
uint64_t aperture_size;
+ struct brw_compiler * compiler;
};
struct anv_instance {