summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2020-01-09 14:50:17 +1000
committerDave Airlie <airlied@redhat.com>2020-02-25 10:31:54 +1000
commit75a0f132db8db51da400fe0472802e09c03d16eb (patch)
treea1f585b2d20be8fab0ef30f4270e65bde90385e0
parentcda14be88b5a9c393ac08c14a052119bb44febb1 (diff)
start writing proper spirv caps
-rw-r--r--src/gallium/state_trackers/vallium/val_pipeline.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/vallium/val_pipeline.c b/src/gallium/state_trackers/vallium/val_pipeline.c
index 90ae4d3cb49..3c9e571627e 100644
--- a/src/gallium/state_trackers/vallium/val_pipeline.c
+++ b/src/gallium/state_trackers/vallium/val_pipeline.c
@@ -475,10 +475,15 @@ val_shader_compile_to_ir(struct val_pipeline *pipeline,
spec_entries[i].data32 = *(const uint32_t *)data;
}
}
-
+ struct val_device *pdevice = pipeline->device;
const struct spirv_to_nir_options spirv_options = {
+ .environment = NIR_SPIRV_VULKAN,
.lower_ubo_ssbo_access_to_offsets = true,
- .caps = {},
+ .caps = {
+ .float64 = (pdevice->pscreen->get_param(pdevice->pscreen, PIPE_CAP_DOUBLES) == 1),
+ .int16 = true,
+ .int64 = (pdevice->pscreen->get_param(pdevice->pscreen, PIPE_CAP_INT64) == 1),
+ },
.ubo_addr_format = nir_address_format_32bit_index_offset,
.ssbo_addr_format = nir_address_format_32bit_index_offset,
.phys_ssbo_addr_format = nir_address_format_64bit_global,