mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-18 20:52:10 +01:00
[spirv] Implement constfReplicant helper
This commit is contained in:
parent
7a956ef8c8
commit
e144c17363
@ -342,6 +342,24 @@ namespace dxvk {
|
||||
|
||||
return this->constComposite(vectorTypeId, args.size(), args.data());
|
||||
}
|
||||
|
||||
|
||||
uint32_t SpirvModule::constfReplicant(
|
||||
float replicant,
|
||||
uint32_t count) {
|
||||
uint32_t value = this->constf32(replicant);
|
||||
|
||||
std::array<uint32_t, 4> args = { value, value, value, value };
|
||||
|
||||
// Can't make a scalar composite.
|
||||
if (count == 1)
|
||||
return args[0];
|
||||
|
||||
uint32_t scalarTypeId = this->defFloatType(32);
|
||||
uint32_t vectorTypeId = this->defVectorType(scalarTypeId, count);
|
||||
|
||||
return this->constComposite(vectorTypeId, count, args.data());
|
||||
}
|
||||
|
||||
|
||||
uint32_t SpirvModule::constComposite(
|
||||
|
@ -160,6 +160,10 @@ namespace dxvk {
|
||||
float y,
|
||||
float z,
|
||||
float w);
|
||||
|
||||
uint32_t constfReplicant(
|
||||
float replicant,
|
||||
uint32_t count);
|
||||
|
||||
uint32_t constComposite(
|
||||
uint32_t typeId,
|
||||
|
Loading…
x
Reference in New Issue
Block a user