From d846901d9d874c1407fbce798286d23bb2d4e3cd Mon Sep 17 00:00:00 2001 From: Jordan Justen Date: Sat, 27 Feb 2021 15:09:56 -0800 Subject: [PATCH] intel/dev: Add devinfo genx10 field Signed-off-by: Jordan Justen Reviewed-by: Kenneth Graunke Reviewed-by: Anuj Phogat Part-of: --- src/gallium/drivers/iris/iris_state.c | 1 + src/intel/dev/gen_device_info.c | 5 +++++ src/intel/dev/gen_device_info.h | 2 ++ src/intel/vulkan/anv_device.c | 2 ++ src/intel/vulkan/anv_genX.h | 2 ++ src/intel/vulkan/genX_state.c | 6 ++++++ src/mesa/drivers/dri/i965/genX_state_upload.c | 2 ++ 7 files changed, 20 insertions(+) diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 11b9c39..7359fda 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -7974,6 +7974,7 @@ iris_set_frontend_noop(struct pipe_context *ctx, bool enable) void genX(init_screen_state)(struct iris_screen *screen) { + assert(screen->devinfo.genx10 == GEN_VERSIONx10); screen->vtbl.destroy_state = iris_destroy_state; screen->vtbl.init_render_context = iris_init_render_context; screen->vtbl.init_compute_context = iris_init_compute_context; diff --git a/src/intel/dev/gen_device_info.c b/src/intel/dev/gen_device_info.c index 5769c6c..9b54e1b 100644 --- a/src/intel/dev/gen_device_info.c +++ b/src/intel/dev/gen_device_info.c @@ -106,6 +106,7 @@ static const struct gen_device_info gen_device_info_i965 = { static const struct gen_device_info gen_device_info_g4x = { .gen = 4, + .genx10 = 45, .has_pln = true, .has_compr4 = true, .has_surface_tile_offset = true, @@ -300,6 +301,7 @@ static const struct gen_device_info gen_device_info_byt = { #define HSW_FEATURES \ GEN7_FEATURES, \ .is_haswell = true, \ + .genx10 = 75, \ .supports_simd16_3src = true, \ .has_resource_streamer = true @@ -1424,6 +1426,9 @@ gen_get_device_info_from_fd(int fd, struct gen_device_info *devinfo) return false; } + if (devinfo->genx10 == 0) + devinfo->genx10 = devinfo->gen * 10; + /* remaining initializion queries the kernel for device info */ if (devinfo->no_hw) return true; diff --git a/src/intel/dev/gen_device_info.h b/src/intel/dev/gen_device_info.h index 166539c..525d4b7 100644 --- a/src/intel/dev/gen_device_info.h +++ b/src/intel/dev/gen_device_info.h @@ -47,6 +47,8 @@ struct drm_i915_query_topology_info; struct gen_device_info { int gen; /**< Generation number: 4, 5, 6, 7, ... */ + /* Driver internal number used to differentiate platforms. */ + int genx10; int revision; int gt; diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index c3cab99..bbf5147 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -871,6 +871,8 @@ anv_physical_device_try_create(struct anv_instance *instance, device->local_fd = fd; + anv_genX(&device->info, init_physical_device_state)(device); + *device_out = device; return VK_SUCCESS; diff --git a/src/intel/vulkan/anv_genX.h b/src/intel/vulkan/anv_genX.h index 9893727..2b3e1e0 100644 --- a/src/intel/vulkan/anv_genX.h +++ b/src/intel/vulkan/anv_genX.h @@ -46,6 +46,8 @@ extern const uint32_t genX(vk_to_gen_compare_op)[]; extern const uint32_t genX(vk_to_gen_stencil_op)[]; +void genX(init_physical_device_state)(struct anv_physical_device *device); + VkResult genX(init_device_state)(struct anv_device *device); void genX(cmd_buffer_emit_state_base_address)(struct anv_cmd_buffer *cmd_buffer); diff --git a/src/intel/vulkan/genX_state.c b/src/intel/vulkan/genX_state.c index b6e984d..20dde23 100644 --- a/src/intel/vulkan/genX_state.c +++ b/src/intel/vulkan/genX_state.c @@ -352,6 +352,12 @@ init_render_queue_state(struct anv_queue *queue) return anv_queue_submit_simple_batch(queue, &batch); } +void +genX(init_physical_device_state)(ASSERTED struct anv_physical_device *device) +{ + assert(device->info.genx10 == GEN_VERSIONx10); +} + VkResult genX(init_device_state)(struct anv_device *device) { diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c index 4668e36..3f34391 100644 --- a/src/mesa/drivers/dri/i965/genX_state_upload.c +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c @@ -5923,4 +5923,6 @@ genX(init_atoms)(struct brw_context *brw) brw->vtbl.emit_mi_report_perf_count = genX(emit_mi_report_perf_count); brw->vtbl.emit_compute_walker = genX(emit_gpgpu_walker); #endif + + assert(brw->screen->devinfo.genx10 == GEN_VERSIONx10); } -- 2.7.4