[PICA] We can now upload floating point uniforms for real
This commit is contained in:
@@ -129,10 +129,10 @@ public:
|
|||||||
floatUniformWordCount = 0;
|
floatUniformWordCount = 0;
|
||||||
|
|
||||||
if (f32UniformTransfer) {
|
if (f32UniformTransfer) {
|
||||||
uniform.x() = f24::fromFloat32(*(float*)floatUniformBuffer[3]);
|
uniform.x() = f24::fromFloat32(*(float*)&floatUniformBuffer[3]);
|
||||||
uniform.y() = f24::fromFloat32(*(float*)floatUniformBuffer[2]);
|
uniform.y() = f24::fromFloat32(*(float*)&floatUniformBuffer[2]);
|
||||||
uniform.z() = f24::fromFloat32(*(float*)floatUniformBuffer[1]);
|
uniform.z() = f24::fromFloat32(*(float*)&floatUniformBuffer[1]);
|
||||||
uniform.w() = f24::fromFloat32(*(float*)floatUniformBuffer[0]);
|
uniform.w() = f24::fromFloat32(*(float*)&floatUniformBuffer[0]);
|
||||||
} else {
|
} else {
|
||||||
uniform.x() = f24::fromRaw(floatUniformBuffer[2] & 0xffffff);
|
uniform.x() = f24::fromRaw(floatUniformBuffer[2] & 0xffffff);
|
||||||
uniform.y() = f24::fromRaw(((floatUniformBuffer[1] & 0xffff) << 8) | (floatUniformBuffer[2] >> 24));
|
uniform.y() = f24::fromRaw(((floatUniformBuffer[1] & 0xffff) << 8) | (floatUniformBuffer[2] >> 24));
|
||||||
|
|||||||
@@ -85,8 +85,6 @@ void GPU::writeInternalReg(u32 index, u32 value, u32 mask) {
|
|||||||
attr.z() = f24::fromRaw(((fixedAttrBuff[0] & 0xff) << 16) | (fixedAttrBuff[1] >> 16));
|
attr.z() = f24::fromRaw(((fixedAttrBuff[0] & 0xff) << 16) | (fixedAttrBuff[1] >> 16));
|
||||||
attr.w() = f24::fromRaw(fixedAttrBuff[0] >> 8);
|
attr.w() = f24::fromRaw(fixedAttrBuff[0] >> 8);
|
||||||
|
|
||||||
printf("r: %f g: %f b: %f a: %f\n", (double)attr.r().toFloat32(), (double)attr.g().toFloat32(), (double)attr.b().toFloat32(), (double)attr.a().toFloat32());
|
|
||||||
|
|
||||||
fixedAttribIndex++;
|
fixedAttribIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ void PICAShader::run() {
|
|||||||
PICAShader::vec4f PICAShader::getSource(u32 source) {
|
PICAShader::vec4f PICAShader::getSource(u32 source) {
|
||||||
if (source < 16)
|
if (source < 16)
|
||||||
return attributes[source];
|
return attributes[source];
|
||||||
|
else if (source >= 0x20 && source <= 0x7f)
|
||||||
|
return floatUniforms[source - 0x20];
|
||||||
|
|
||||||
Helpers::panic("[PICA] Unimplemented source value: %X", source);
|
Helpers::panic("[PICA] Unimplemented source value: %X", source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user