[host] dxgi: correct 24-bit packed output height calculation bug

This commit is contained in:
Geoffrey McRae 2024-01-27 11:14:04 +11:00
parent 738a04d0bc
commit 84dd68dd2b

View File

@ -78,11 +78,13 @@ static bool rgb24_configure(void * opaque,
if (!this.pshader) if (!this.pshader)
{ {
const unsigned packedPitch = ALIGN_TO(*cols * 3, 4);
/* we must align to 64 byte boundaries to avoid breaking dmabuf import */ /* we must align to 64 byte boundaries to avoid breaking dmabuf import */
this.width = ALIGN_TO((*cols * 3 + 3) / 4, 64); this.width = ALIGN_TO(packedPitch / 4, 64);
/* adjust for the aligned width */ /* adjust for the aligned width */
this.height = (((*rows * *cols) * 3 + 3) / 4) / this.width; this.height = (*cols * *rows) / (packedPitch / 3);
char sOutputWidth[6], sOutputHeight[6]; char sOutputWidth[6], sOutputHeight[6];
snprintf(sOutputWidth , sizeof(sOutputWidth) , "%d", this.width ); snprintf(sOutputWidth , sizeof(sOutputWidth) , "%d", this.width );