- case QUNIFORM_UBO_ADDR:
- cl_aligned_reloc(vc4, &vc4->uniforms, &uniforms, ubo, 0);
+ case QUNIFORM_TEXTURE_FIRST_LEVEL:
+ write_texture_first_level(job, &uniforms, texstate,
+ data);
+ break;
+
+ case QUNIFORM_UBO0_ADDR:
+ /* Constant buffer 0 may be a system memory pointer,
+ * in which case we want to upload a shadow copy to
+ * the GPU.
+ */
+ if (!cb->cb[0].buffer) {
+ u_upload_data(vc4->uploader, 0,
+ cb->cb[0].buffer_size, 16,
+ cb->cb[0].user_buffer,
+ &cb->cb[0].buffer_offset,
+ &cb->cb[0].buffer);
+ }
+
+ cl_aligned_reloc(job, &job->uniforms,
+ &uniforms,
+ vc4_resource(cb->cb[0].buffer)->bo,
+ cb->cb[0].buffer_offset +
+ data);
+ break;
+
+ case QUNIFORM_UBO1_ADDR: {
+ struct vc4_resource *rsc =
+ vc4_resource(cb->cb[1].buffer);
+
+ cl_aligned_reloc(job, &job->uniforms,
+ &uniforms,
+ rsc->bo, cb->cb[1].buffer_offset);
+ break;
+ }
+
+ case QUNIFORM_TEXTURE_MSAA_ADDR:
+ write_texture_msaa_addr(job, &uniforms, texstate, data);