Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/tests/effect.c:
+ { D3DXPT_FLOAT, sizeof( FLOAT ) * 16, sizeof( FLOAT ), sizeof( FLOAT ), S_OK, &SET_RAWDATA_FLOAT44_BBA, "f44", &SET_RAWDATA_FLOAT44_A }, + + /* Strings. Test 0x28 */ + { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test" ), 0, S_OK, "\0", "s", "test" }, + { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test" ), 0, D3DERR_INVALIDCALL, "\0", "s", NULL }, + { D3DXPT_STRING, sizeof( "\0" ), 0, 0, D3DERR_INVALIDCALL, "\0", "s", "test_longer_string" }, + { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test_longer_string" ), 0, D3DERR_INVALIDCALL, "\0", "s", "test_longer_string" }, + { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test_longer_string" ), sizeof( "test" ), D3DERR_INVALIDCALL, "\0", "s", "test_longer_string" }, + + /* String vector. Test 0x2E */ + { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test" ), 0, S_OK, "\0", "s_2", "test" }, + { D3DXPT_STRING, sizeof( "\0" ), 0, 0, S_OK, "\0", "s_2", "test_longer_string" }, + { D3DXPT_STRING, sizeof( "\0" ), sizeof( "test_longer_string" ), 0, S_OK, "\0", "s_2", "test_longer_string" }, + + /* Textures. Test 0x31 */ + { D3DXPT_TEXTURE, sizeof( "\0" ), sizeof( "DEAFCAFE" ), 0, S_OK, "\0", "tex", "DEAFCAFE" }, Assigning a string to a D3DXPT_TEXTURE parameter is not great. I guess it's interesting in its own way that it apparently doesn't crash on Windows, but I'd avoid this kind of weirdness in the test by creating and passing a proper texture object (or NULL).
Same comment for the shader objects below. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/979#note_11090