Lines Matching refs:dxil

220                                    const struct clc_dxil_object &dxil)
223 pipeline_desc.CS.pShaderBytecode = dxil.binary.data;
224 pipeline_desc.CS.BytecodeLength = dxil.binary.size;
436 if (args.size() != shader.dxil->kernel->num_args)
445 if (!shader.dxil->metadata.local_size[0])
448 conf.local_size[0] = shader.dxil->metadata.local_size[0];
450 if (!shader.dxil->metadata.local_size[1])
453 conf.local_size[1] = shader.dxil->metadata.local_size[1];
455 if (!shader.dxil->metadata.local_size[2])
458 conf.local_size[2] = shader.dxil->metadata.local_size[2];
477 for (unsigned i = 0; i < shader.dxil->kernel->num_args; ++i) {
481 switch (shader.dxil->kernel->args[i].address_qualifier) {
493 std::shared_ptr<struct clc_dxil_object> &dxil = shader.dxil;
495 std::vector<uint8_t> argsbuf(dxil->metadata.kernel_inputs_buf_size);
496 std::vector<ComPtr<ID3D12Resource>> argres(shader.dxil->kernel->num_args);
507 for (unsigned i = 0; i < dxil->kernel->num_args; ++i) {
510 void *slot = argsbuf.data() + dxil->metadata.args[i].offset;
512 switch (dxil->kernel->args[i].address_qualifier) {
515 assert(dxil->metadata.args[i].size == sizeof(uint64_t));
518 *ptr_slot = (uint64_t)dxil->metadata.args[i].globconstptr.buf_id << 32;
524 assert(dxil->metadata.args[i].size == sizeof(uint64_t));
526 *ptr_slot = dxil->metadata.args[i].localptr.sharedmem_offset;
530 assert(size == dxil->metadata.args[i].size);
539 for (unsigned i = 0; i < dxil->kernel->num_args; ++i) {
542 if (dxil->kernel->args[i].address_qualifier == CLC_KERNEL_ARG_ADDRESS_GLOBAL ||
543 dxil->kernel->args[i].address_qualifier == CLC_KERNEL_ARG_ADDRESS_CONSTANT) {
545 dxil->metadata.args[i].globconstptr.buf_id,
551 if (dxil->metadata.printf.uav_id > 0)
552 add_uav_resource(resources, 0, dxil->metadata.printf.uav_id, NULL, 1024 * 1024 / 4, 4);
554 for (unsigned i = 0; i < dxil->metadata.num_consts; ++i)
555 add_uav_resource(resources, 0, dxil->metadata.consts[i].uav_id,
556 dxil->metadata.consts[i].data,
557 dxil->metadata.consts[i].size / 4, 4);
560 add_cbv_resource(resources, 0, dxil->metadata.kernel_inputs_cbv_id,
563 add_cbv_resource(resources, 0, dxil->metadata.work_properties_cbv_id,
567 auto pipeline_state = create_pipeline_state(root_sig, *dxil);
598 assert(dxil->kernel->args[i].address_qualifier == CLC_KERNEL_ARG_ADDRESS_GLOBAL);
723 validate_module(const struct clc_dxil_object &dxil)
749 } blob(dxil.binary.data, dxil.binary.size);
781 dump_blob(const char *path, const struct clc_dxil_object &dxil)
785 fwrite(dxil.binary.data, 1, dxil.binary.size, fp);
893 shader.dxil = std::shared_ptr<clc_dxil_object>(new clc_dxil_object{}, [](clc_dxil_object *dxil)
895 clc_free_dxil_object(dxil);
896 delete dxil;
898 if (!clc_spirv_to_dxil(compiler_ctx, shader.obj.get(), shader.metadata.get(), "main_test", conf, nullptr, &logger, shader.dxil.get()))
905 dump_blob("unsigned.cso", *shader.dxil);
906 if (!validate_module(*shader.dxil))
909 dump_blob("signed.cso", *shader.dxil);