Lines Matching refs:dxil

262                                    const struct clc_dxil_object &dxil)
265 pipeline_desc.CS.pShaderBytecode = dxil.binary.data;
266 pipeline_desc.CS.BytecodeLength = dxil.binary.size;
478 if (args.size() != shader.dxil->kernel->num_args)
487 if (!shader.dxil->metadata.local_size[0])
490 conf.local_size[0] = shader.dxil->metadata.local_size[0];
492 if (!shader.dxil->metadata.local_size[1])
495 conf.local_size[1] = shader.dxil->metadata.local_size[1];
497 if (!shader.dxil->metadata.local_size[2])
500 conf.local_size[2] = shader.dxil->metadata.local_size[2];
519 for (unsigned i = 0; i < shader.dxil->kernel->num_args; ++i) {
523 switch (shader.dxil->kernel->args[i].address_qualifier) {
535 std::shared_ptr<struct clc_dxil_object> &dxil = shader.dxil;
537 std::vector<uint8_t> argsbuf(dxil->metadata.kernel_inputs_buf_size);
538 std::vector<ComPtr<ID3D12Resource>> argres(shader.dxil->kernel->num_args);
549 for (unsigned i = 0; i < dxil->kernel->num_args; ++i) {
552 void *slot = argsbuf.data() + dxil->metadata.args[i].offset;
554 switch (dxil->kernel->args[i].address_qualifier) {
557 assert(dxil->metadata.args[i].size == sizeof(uint64_t));
560 *ptr_slot = (uint64_t)dxil->metadata.args[i].globconstptr.buf_id << 32;
566 assert(dxil->metadata.args[i].size == sizeof(uint64_t));
568 *ptr_slot = dxil->metadata.args[i].localptr.sharedmem_offset;
572 assert(size == dxil->metadata.args[i].size);
581 for (unsigned i = 0; i < dxil->kernel->num_args; ++i) {
584 if (dxil->kernel->args[i].address_qualifier == CLC_KERNEL_ARG_ADDRESS_GLOBAL ||
585 dxil->kernel->args[i].address_qualifier == CLC_KERNEL_ARG_ADDRESS_CONSTANT) {
587 dxil->metadata.args[i].globconstptr.buf_id,
593 if (dxil->metadata.printf.uav_id > 0)
594 add_uav_resource(resources, 0, dxil->metadata.printf.uav_id, NULL, 1024 * 1024 / 4, 4);
596 for (unsigned i = 0; i < dxil->metadata.num_consts; ++i)
597 add_uav_resource(resources, 0, dxil->metadata.consts[i].uav_id,
598 dxil->metadata.consts[i].data,
599 dxil->metadata.consts[i].size / 4, 4);
602 add_cbv_resource(resources, 0, dxil->metadata.kernel_inputs_cbv_id,
605 add_cbv_resource(resources, 0, dxil->metadata.work_properties_cbv_id,
609 auto pipeline_state = create_pipeline_state(root_sig, *dxil);
640 assert(dxil->kernel->args[i].address_qualifier == CLC_KERNEL_ARG_ADDRESS_GLOBAL);
765 validate_module(const struct clc_dxil_object &dxil)
769 bool res = dxil_validate_module(val, dxil.binary.data,
770 dxil.binary.size, &err);
779 dump_blob(const char *path, const struct clc_dxil_object &dxil)
783 fwrite(dxil.binary.data, 1, dxil.binary.size, fp);
891 std::unique_ptr<clc_dxil_object> dxil(new clc_dxil_object{});
892 if (!clc_spirv_to_dxil(compiler_ctx, shader.obj.get(), shader.metadata.get(), "main_test", conf, nullptr, &logger, dxil.get()))
894 shader.dxil = std::shared_ptr<clc_dxil_object>(dxil.release(), [](clc_dxil_object *dxil)
896 clc_free_dxil_object(dxil);
897 delete dxil;
904 dump_blob("unsigned.cso", *shader.dxil);
905 if (!validate_module(*shader.dxil))
908 dump_blob("signed.cso", *shader.dxil);