diff --git a/src/nouveau/vulkan/nvk_graphics_pipeline.c b/src/nouveau/vulkan/nvk_graphics_pipeline.c index 278eeea6e00..0ec183a0424 100644 --- a/src/nouveau/vulkan/nvk_graphics_pipeline.c +++ b/src/nouveau/vulkan/nvk_graphics_pipeline.c @@ -270,10 +270,14 @@ nvk_graphics_pipeline_create(struct nvk_device *device, last_geom = shader; uint64_t addr = nvk_shader_address(shader); - assert(device->ctx->eng3d.cls >= VOLTA_A); - P_MTHD(p, NVC397, SET_PIPELINE_PROGRAM_ADDRESS_A(idx)); - P_NVC397_SET_PIPELINE_PROGRAM_ADDRESS_A(p, idx, addr >> 32 ); - P_NVC397_SET_PIPELINE_PROGRAM_ADDRESS_B(p, idx, addr); + if (device->ctx->eng3d.cls >= VOLTA_A) { + P_MTHD(p, NVC397, SET_PIPELINE_PROGRAM_ADDRESS_A(idx)); + P_NVC397_SET_PIPELINE_PROGRAM_ADDRESS_A(p, idx, addr >> 32); + P_NVC397_SET_PIPELINE_PROGRAM_ADDRESS_B(p, idx, addr); + } else { + assert(addr < 0xffffffff); + P_IMMD(p, NV9097, SET_PIPELINE_PROGRAM(idx), addr); + } P_IMMD(p, NV9097, SET_PIPELINE_REGISTER_COUNT(idx), shader->num_gprs);