mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-14 01:27:00 +00:00
Remove transform constants
This commit is contained in:
parent
e086b7a522
commit
beabc88f79
@ -284,12 +284,6 @@ void D3D12GSRender::setScaleOffset()
|
||||
|
||||
void D3D12GSRender::FillVertexShaderConstantsBuffer()
|
||||
{
|
||||
for (const RSXTransformConstant& c : m_transform_constants)
|
||||
{
|
||||
size_t offset = c.id * 4 * sizeof(float);
|
||||
m_vertexConstants[offset] = c;
|
||||
}
|
||||
|
||||
size_t bufferSize = 512 * 4 * sizeof(float);
|
||||
|
||||
assert(m_constantsData.canAlloc(bufferSize));
|
||||
@ -297,15 +291,15 @@ void D3D12GSRender::FillVertexShaderConstantsBuffer()
|
||||
|
||||
void *constantsBufferMap;
|
||||
ThrowIfFailed(m_constantsData.m_heap->Map(0, &CD3DX12_RANGE(heapOffset, heapOffset + bufferSize), &constantsBufferMap));
|
||||
for (const auto &vertexConstants : m_vertexConstants)
|
||||
for (const auto &entry : transform_constants)
|
||||
{
|
||||
float data[4] = {
|
||||
vertexConstants.second.x,
|
||||
vertexConstants.second.y,
|
||||
vertexConstants.second.z,
|
||||
vertexConstants.second.w
|
||||
entry.second.x,
|
||||
entry.second.y,
|
||||
entry.second.z,
|
||||
entry.second.w
|
||||
};
|
||||
streamToBuffer((char*)constantsBufferMap + heapOffset + vertexConstants.first, data, 4 * sizeof(float));
|
||||
streamToBuffer((char*)constantsBufferMap + heapOffset + entry.first * 4 * sizeof(float), data, 4 * sizeof(float));
|
||||
}
|
||||
m_constantsData.m_heap->Unmap(0, &CD3DX12_RANGE(heapOffset, heapOffset + bufferSize));
|
||||
|
||||
|
@ -1032,7 +1032,7 @@ void GLGSRender::InitVertexData()
|
||||
0.0f, 0.0f, 0.0f, 1.0f
|
||||
};
|
||||
|
||||
for (const RSXTransformConstant& c : m_transform_constants)
|
||||
/* for (const RSXTransformConstant& c : m_transform_constants)
|
||||
{
|
||||
const std::string name = fmt::format("vc[%u]", c.id);
|
||||
l = m_program.GetLocation(name);
|
||||
@ -1040,7 +1040,7 @@ void GLGSRender::InitVertexData()
|
||||
|
||||
glUniform4f(l, c.x, c.y, c.z, c.w);
|
||||
checkForGlError("glUniform4f " + name + fmt::format(" %d [%f %f %f %f]", l, c.x, c.y, c.z, c.w));
|
||||
}
|
||||
}*/
|
||||
|
||||
// Scale
|
||||
scaleOffsetMat[0] = (GLfloat&)rsx::method_registers[NV4097_SET_VIEWPORT_SCALE + (0x4 * 0)] / (RSXThread::m_width / RSXThread::m_width_scale);
|
||||
|
@ -1066,11 +1066,9 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, const u32 args_addr, const
|
||||
const u32 z = ARGS(i); i++;
|
||||
const u32 w = ARGS(i); i++;
|
||||
|
||||
RSXTransformConstant c(id, (float&)x, (float&)y, (float&)z, (float&)w);
|
||||
color4f c((float&)x, (float&)y, (float&)z, (float&)w);
|
||||
|
||||
m_transform_constants.push_back(c);
|
||||
|
||||
//LOG_NOTICE(RSX, "NV4097_SET_TRANSFORM_CONSTANT_LOAD: [%d : %d] = (%f, %f, %f, %f)", i, id, c.x, c.y, c.z, c.w);
|
||||
transform_constants[id] = c;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -2150,7 +2148,6 @@ void RSXThread::End()
|
||||
|
||||
m_indexed_array.Reset();
|
||||
m_fragment_constants.clear();
|
||||
m_transform_constants.clear();
|
||||
m_cur_fragment_prog_num = 0;
|
||||
|
||||
m_clear_surface_mask = 0;
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "Utilities/Semaphore.h"
|
||||
#include "Utilities/Thread.h"
|
||||
#include "Utilities/Timer.h"
|
||||
|
||||
#include "Utilities/types.h"
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
@ -152,9 +152,12 @@ public:
|
||||
rsx::data_array_format_info vertex_arrays_info[rsx::limits::vertex_count];
|
||||
std::vector<u8> vertex_arrays[rsx::limits::vertex_count];
|
||||
RSXIndexArrayData m_indexed_array;
|
||||
|
||||
std::unordered_map<u32, color4_base<f32>> transform_constants;
|
||||
|
||||
std::vector<RSXTransformConstant> m_fragment_constants;
|
||||
std::vector<RSXTransformConstant> m_transform_constants;
|
||||
|
||||
|
||||
|
||||
u32 m_shader_ctrl, m_cur_fragment_prog_num;
|
||||
RSXFragmentProgram m_fragment_progs[rsx::limits::fragment_count];
|
||||
RSXFragmentProgram* m_cur_fragment_prog;
|
||||
|
Loading…
x
Reference in New Issue
Block a user