diff --git a/src/gallium/drivers/iris/Android.mk b/src/gallium/drivers/iris/Android.mk index 70e2957cd35..507e68d0bf6 100644 --- a/src/gallium/drivers/iris/Android.mk +++ b/src/gallium/drivers/iris/Android.mk @@ -121,6 +121,26 @@ LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_genxml include $(MESA_COMMON_MK) include $(BUILD_STATIC_LIBRARY) +# +# libiris for gen12hp +# + +include $(CLEAR_VARS) +LOCAL_MODULE := libmesa_iris_gen125 +LOCAL_MODULE_CLASS := STATIC_LIBRARIES + +LOCAL_SRC_FILES := $(LIBIRIS_SRC_FILES) +LOCAL_CFLAGS := -DGEN_VERSIONx10=125 + +LOCAL_C_INCLUDES := $(IRIS_COMMON_INCLUDES) + +LOCAL_STATIC_LIBRARIES := $(LIBIRIS_STATIC_LIBS) + +LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_genxml + +include $(MESA_COMMON_MK) +include $(BUILD_STATIC_LIBRARY) + ########################################################### include $(CLEAR_VARS) diff --git a/src/gallium/drivers/iris/iris_context.c b/src/gallium/drivers/iris/iris_context.c index 4064f55f681..e4aa1907a13 100644 --- a/src/gallium/drivers/iris/iris_context.c +++ b/src/gallium/drivers/iris/iris_context.c @@ -259,9 +259,13 @@ iris_destroy_context(struct pipe_context *ctx) } #define genX_call(devinfo, func, ...) \ - switch (devinfo->gen) { \ + switch ((devinfo)->gen) { \ case 12: \ - gen12_##func(__VA_ARGS__); \ + if (gen_device_info_is_12hp(devinfo)) { \ + gen125_##func(__VA_ARGS__); \ + } else { \ + gen12_##func(__VA_ARGS__); \ + } \ break; \ case 11: \ gen11_##func(__VA_ARGS__); \ diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index 6f165c9d775..a57a0bf7bef 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -985,6 +985,9 @@ void gen9_toggle_preemption(struct iris_context *ice, # define genX(x) gen12_##x # include "iris_genx_protos.h" # undef genX +# define genX(x) gen125_##x +# include "iris_genx_protos.h" +# undef genX #endif #endif diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index d9b876ddb3b..0ee64c58385 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -59,9 +59,13 @@ #include "iris_monitor.h" #define genX_call(devinfo, func, ...) \ - switch (devinfo.gen) { \ + switch ((devinfo)->gen) { \ case 12: \ - gen12_##func(__VA_ARGS__); \ + if (gen_device_info_is_12hp(devinfo)) { \ + gen125_##func(__VA_ARGS__); \ + } else { \ + gen12_##func(__VA_ARGS__); \ + } \ break; \ case 11: \ gen11_##func(__VA_ARGS__); \ @@ -865,7 +869,7 @@ iris_screen_create(int fd, const struct pipe_screen_config *config) pscreen->get_driver_query_group_info = iris_get_monitor_group_info; pscreen->get_driver_query_info = iris_get_monitor_info; - genX_call(screen->devinfo, init_screen_state, screen); + genX_call(&screen->devinfo, init_screen_state, screen); glsl_type_singleton_init_or_ref(); diff --git a/src/gallium/drivers/iris/meson.build b/src/gallium/drivers/iris/meson.build index 05bace8b67e..4a616ca8696 100644 --- a/src/gallium/drivers/iris/meson.build +++ b/src/gallium/drivers/iris/meson.build @@ -56,7 +56,7 @@ files_libiris = files( ) iris_gen_libs = [] -foreach v : ['80', '90', '110', '120'] +foreach v : ['80', '90', '110', '120', '125'] iris_gen_libs += static_library( 'iris_gen@0@'.format(v), ['iris_blorp.c', 'iris_query.c', 'iris_state.c', gen_xml_pack],