diff --git a/src/intel/genxml/gen30.xml b/src/intel/genxml/gen30.xml
new file mode 100644
index 00000000000..ae87f088aaf
--- /dev/null
+++ b/src/intel/genxml/gen30.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/src/intel/genxml/gen30_rt.xml b/src/intel/genxml/gen30_rt.xml
new file mode 100644
index 00000000000..242218077cb
--- /dev/null
+++ b/src/intel/genxml/gen30_rt.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/src/intel/genxml/genX_cl_pack.h b/src/intel/genxml/genX_cl_pack.h
index c26877c1744..28bbdaad07b 100644
--- a/src/intel/genxml/genX_cl_pack.h
+++ b/src/intel/genxml/genX_cl_pack.h
@@ -33,6 +33,8 @@
# include "genxml/gen125_cl_pack.h"
#elif (GFX_VERx10 == 200)
# include "genxml/gen20_cl_pack.h"
+#elif (GFX_VERx10 == 300)
+# include "genxml/gen30_cl_pack.h"
#else
# error "Need to add a pack header include for this gen"
#endif
diff --git a/src/intel/genxml/genX_pack.h b/src/intel/genxml/genX_pack.h
index fc0fdeda21d..27ee72d1c0b 100644
--- a/src/intel/genxml/genX_pack.h
+++ b/src/intel/genxml/genX_pack.h
@@ -52,6 +52,8 @@
# include "genxml/gen125_pack.h"
#elif (GFX_VERx10 == 200)
# include "genxml/gen20_pack.h"
+#elif (GFX_VERx10 == 300)
+# include "genxml/gen30_pack.h"
#else
# error "Need to add a pack header include for this gen"
#endif
diff --git a/src/intel/genxml/genX_rt_pack.h b/src/intel/genxml/genX_rt_pack.h
index d567bccaa6b..fd17f87e371 100644
--- a/src/intel/genxml/genX_rt_pack.h
+++ b/src/intel/genxml/genX_rt_pack.h
@@ -52,6 +52,8 @@
# include "genxml/gen125_rt_pack.h"
#elif (GFX_VERx10 == 200)
# include "genxml/gen20_rt_pack.h"
+#elif (GFX_VERx10 == 300)
+# include "genxml/gen30_rt_pack.h"
#else
# error "Need to add a pack header include for this gen"
#endif
diff --git a/src/intel/genxml/gen_bits_header.py b/src/intel/genxml/gen_bits_header.py
index 0b16c3b9025..6d8c93a1a54 100644
--- a/src/intel/genxml/gen_bits_header.py
+++ b/src/intel/genxml/gen_bits_header.py
@@ -82,6 +82,7 @@ static inline uint32_t ATTRIBUTE_PURE
${item.token_name}_${prop}(const struct intel_device_info *devinfo)
{
switch (devinfo->verx10) {
+ case 300: return ${item.get_prop(prop, 30)};
case 200: return ${item.get_prop(prop, 20)};
case 125: return ${item.get_prop(prop, 12.5)};
case 120: return ${item.get_prop(prop, 12)};
diff --git a/src/intel/genxml/gen_macros.h b/src/intel/genxml/gen_macros.h
index aa65580e380..aac52bc7f04 100644
--- a/src/intel/genxml/gen_macros.h
+++ b/src/intel/genxml/gen_macros.h
@@ -95,6 +95,9 @@
#elif (GFX_VERx10 == 200)
# define GENX(X) GFX20_##X
# define genX(x) gfx20_##x
+#elif (GFX_VERx10 == 300)
+# define GENX(X) GFX30_##X
+# define genX(x) gfx30_##x
#else
# error "Need to add prefixing macros for this gen"
#endif
diff --git a/src/intel/genxml/intel_genxml.py b/src/intel/genxml/intel_genxml.py
index 868a653f1b3..48ca07e4128 100755
--- a/src/intel/genxml/intel_genxml.py
+++ b/src/intel/genxml/intel_genxml.py
@@ -194,6 +194,8 @@ default_imports = OrderedDict([
('gen125.xml', ('gen12.xml',)),
('gen20.xml', ('gen125.xml',)),
('gen20_rt.xml', ('gen125_rt.xml',)),
+ ('gen30.xml', ('gen20.xml',)),
+ ('gen30_rt.xml', ('gen20_rt.xml',)),
])
known_genxml_files = list(default_imports.keys())
diff --git a/src/intel/genxml/meson.build b/src/intel/genxml/meson.build
index e3840fa95c5..13c0a04e72b 100644
--- a/src/intel/genxml/meson.build
+++ b/src/intel/genxml/meson.build
@@ -14,11 +14,13 @@ gen_xml_files = [
'gen12.xml',
'gen125.xml',
'gen20.xml',
+ 'gen30.xml',
]
gen_xml_rt_files = [
'gen125_rt.xml',
'gen20_rt.xml',
+ 'gen30_rt.xml',
]
gen_pack_header_deps = files('intel_genxml.py', 'util.py')