summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-10-06 17:16:51 -0700
committerJason Ekstrand <[email protected]>2016-10-06 21:13:52 -0700
commit82b4f1c47b1d6ca326dbd863253d89337f565309 (patch)
treeb493201125553391c1a0787c1d4c64788d9df0e1 /src/intel
parent85a47f647e140fd2b43bda917795145f047032d1 (diff)
anv/entrypoints: Save off the entire devinfo rather than a pointer
Since the gen_device_info structs are no longer just constant memory, a pointer to one is not a pointer to something in the .data section so we shouldn't be storing it in a static variable. Instead, we should just store the entire device_info structure. Signed-off-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/vulkan/anv_entrypoints_gen.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py
index b0264950d62..aeaeb1db8d5 100644
--- a/src/intel/vulkan/anv_entrypoints_gen.py
+++ b/src/intel/vulkan/anv_entrypoints_gen.py
@@ -214,22 +214,22 @@ for layer in [ "anv", "gen7", "gen75", "gen8", "gen9" ]:
print "};\n"
print """
-static const struct gen_device_info *dispatch_devinfo;
+static struct gen_device_info dispatch_devinfo;
void
anv_set_dispatch_devinfo(const struct gen_device_info *devinfo)
{
- dispatch_devinfo = devinfo;
+ dispatch_devinfo = *devinfo;
}
void * __attribute__ ((noinline))
anv_resolve_entrypoint(uint32_t index)
{
- if (dispatch_devinfo == NULL) {
+ if (dispatch_devinfo.gen == 0) {
return anv_layer.entrypoints[index];
}
- switch (dispatch_devinfo->gen) {
+ switch (dispatch_devinfo.gen) {
case 9:
if (gen9_layer.entrypoints[index])
return gen9_layer.entrypoints[index];
@@ -239,7 +239,7 @@ anv_resolve_entrypoint(uint32_t index)
return gen8_layer.entrypoints[index];
/* fall through */
case 7:
- if (dispatch_devinfo->is_haswell && gen75_layer.entrypoints[index])
+ if (dispatch_devinfo.is_haswell && gen75_layer.entrypoints[index])
return gen75_layer.entrypoints[index];
if (gen7_layer.entrypoints[index])