Thanks to Mauro for the illuminating infos about this problem. I do have a NVIDIA GPU and I suffer the very same problem.
I’ve written a small C/C++ code, which shows the problem and implements the fix suggested by mauro: I don’t pretend you to compile it (it depends on several external libs, SFML, spdlog, headers from DX, etc…), but it’s a suggestion for the YAME developers: The code is here: https://gist.github.com/giupo/27dcf996609659a167b8de5ccaa6d717. When I copy the contents of the texture buffer every 1200 bytes, I pad 16 bytes from the source buffer.
The relevant code is here:
[font]
for(unsigned int i = 0, j = 0; j < texture_size; i += bytes_per_pixel, j += bytes_per_pixel) {
//changes from BGRA to RGBA
texture_buffer[j] = texture_data[i]; // R
texture_buffer[j + 1] = texture_data[i]; // G
texture_buffer[j + 2] = texture_data[i]; // B
texture_buffer[j + 3] = 0xFF; // texture_data[i]; // A 0xFF
// -----> here is the trick <-----
if(j % 1200 == 0) {
i += 16;
}
}
I will attach the results I get without and with the padding.
[attach]42688[/attach][attach]42689[/attach]
HTH,
Giuseppe[/i][/i][/i][/i][/font]