mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-07-21 22:32:59 +12:00
[PICA] We can now upload floating point uniforms for real
This commit is contained in:
parent
92b7ca3b8c
commit
ce07b7e5e0
3 changed files with 7 additions and 6 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue