mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-11 08:39:48 +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;
|
||||
|
||||
if (f32UniformTransfer) {
|
||||
uniform.x() = f24::fromFloat32(*(float*)floatUniformBuffer[3]);
|
||||
uniform.y() = f24::fromFloat32(*(float*)floatUniformBuffer[2]);
|
||||
uniform.z() = f24::fromFloat32(*(float*)floatUniformBuffer[1]);
|
||||
uniform.w() = f24::fromFloat32(*(float*)floatUniformBuffer[0]);
|
||||
uniform.x() = f24::fromFloat32(*(float*)&floatUniformBuffer[3]);
|
||||
uniform.y() = f24::fromFloat32(*(float*)&floatUniformBuffer[2]);
|
||||
uniform.z() = f24::fromFloat32(*(float*)&floatUniformBuffer[1]);
|
||||
uniform.w() = f24::fromFloat32(*(float*)&floatUniformBuffer[0]);
|
||||
} else {
|
||||
uniform.x() = f24::fromRaw(floatUniformBuffer[2] & 0xffffff);
|
||||
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.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++;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,9 @@ void PICAShader::run() {
|
|||
PICAShader::vec4f PICAShader::getSource(u32 source) {
|
||||
if (source < 16)
|
||||
return attributes[source];
|
||||
else if (source >= 0x20 && source <= 0x7f)
|
||||
return floatUniforms[source - 0x20];
|
||||
|
||||
Helpers::panic("[PICA] Unimplemented source value: %X", source);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue