提交 4a370acf 编写于 作者: J jp9000

d3d11: Fix float3 constant alignment (128bit)

上级 824ff961
......@@ -108,7 +108,7 @@ void gs_shader::BuildConstantBuffer()
case SHADER_PARAM_INT:
case SHADER_PARAM_FLOAT: constantSize += sizeof(float); break;
case SHADER_PARAM_VEC2: constantSize += sizeof(vec2); break;
case SHADER_PARAM_VEC3: constantSize += sizeof(float)*3; break;
case SHADER_PARAM_VEC3: constantSize += sizeof(vec3); break;
case SHADER_PARAM_VEC4: constantSize += sizeof(vec4); break;
case SHADER_PARAM_MATRIX4X4:
constantSize += sizeof(float)*4*4;
......@@ -167,6 +167,12 @@ inline void gs_shader::UpdateParam(vector<uint8_t> &constData,
param.curValue.begin(),
param.curValue.end());
/* alignment required for float3 constants */
if (param.type == SHADER_PARAM_VEC3) {
uint8_t zero = 0;
constData.insert(constData.end(), sizeof(float), zero);
}
if (param.changed) {
upload = true;
param.changed = false;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册