diff --git a/src/imagination/csbgen/meson.build b/src/imagination/csbgen/meson.build
index 6af0af3e5d6..c72e47bc728 100644
--- a/src/imagination/csbgen/meson.build
+++ b/src/imagination/csbgen/meson.build
@@ -3,5 +3,6 @@
pvr_xml_pack = []
subdir('rogue')
+subdir('volcanic')
dep_csbgen = declare_dependency(sources : [pvr_xml_pack])
diff --git a/src/imagination/csbgen/volcanic/cdm.xml b/src/imagination/csbgen/volcanic/cdm.xml
new file mode 100644
index 00000000000..7f89733a5ad
--- /dev/null
+++ b/src/imagination/csbgen/volcanic/cdm.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/imagination/csbgen/volcanic/ipf.xml b/src/imagination/csbgen/volcanic/ipf.xml
new file mode 100644
index 00000000000..375b5ee984c
--- /dev/null
+++ b/src/imagination/csbgen/volcanic/ipf.xml
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/imagination/csbgen/volcanic/lls.xml b/src/imagination/csbgen/volcanic/lls.xml
new file mode 100644
index 00000000000..25d9c3d5279
--- /dev/null
+++ b/src/imagination/csbgen/volcanic/lls.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/imagination/csbgen/volcanic/meson.build b/src/imagination/csbgen/volcanic/meson.build
new file mode 100644
index 00000000000..918593e0f39
--- /dev/null
+++ b/src/imagination/csbgen/volcanic/meson.build
@@ -0,0 +1,22 @@
+# Copyright © 2025 Imagination Technologies Ltd.
+# SPDX-License-Identifier: MIT
+
+pvr_xml_files = [
+ 'cdm.xml',
+ 'ipf.xml',
+ 'lls.xml',
+ 'pbestate.xml',
+ 'pds.xml',
+ 'texstate.xml',
+]
+
+foreach f : pvr_xml_files
+ _name = '@0@.h'.format(f.split('.')[0])
+ pvr_xml_pack += custom_target(
+ _name,
+ input : ['../gen_pack_header.py', f],
+ output : _name,
+ command : [prog_python, '@INPUT@'],
+ capture : true,
+ )
+endforeach
diff --git a/src/imagination/csbgen/volcanic/pbestate.xml b/src/imagination/csbgen/volcanic/pbestate.xml
new file mode 100644
index 00000000000..eaafedf1b18
--- /dev/null
+++ b/src/imagination/csbgen/volcanic/pbestate.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/imagination/csbgen/volcanic/pds.xml b/src/imagination/csbgen/volcanic/pds.xml
new file mode 100644
index 00000000000..1c6f39b5a01
--- /dev/null
+++ b/src/imagination/csbgen/volcanic/pds.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/imagination/csbgen/volcanic/texstate.xml b/src/imagination/csbgen/volcanic/texstate.xml
new file mode 100644
index 00000000000..85418198581
--- /dev/null
+++ b/src/imagination/csbgen/volcanic/texstate.xml
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+