Re: [PATCHv2 2/3] wined3d: Use an rbtree for storing shaders for texture format conversion/blitting
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 2014-02-12 21:05, schrieb Martin Storsjo:
+ entry = wine_rb_get(&priv->shaders, &type); + if (entry) { - case COMPLEX_FIXUP_YUY2: - shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->yuy2_rect_shader : priv->yuy2_2d_shader; ... - break; - + struct arbfp_blit_desc *desc = WINE_RB_ENTRY_VALUE(entry, struct arbfp_blit_desc, entry); + shader = desc->shader; + } + else + { + switch(fixup) + { case COMPLEX_FIXUP_P8: - shader = textype == GL_TEXTURE_RECTANGLE_ARB ? priv->p8_rect_shader : priv->p8_2d_shader; - if (!shader) shader = gen_p8_shader(priv, gl_info, textype); ... + } } You'll have to execute upload_palette before running the p8 shader, not just when generating it.
struct arbfp_blit_priv { - GLenum yuy2_rect_shader, yuy2_2d_shader; - GLenum uyvy_rect_shader, uyvy_2d_shader; - GLenum yv12_rect_shader, yv12_2d_shader; - GLenum nv12_rect_shader, nv12_2d_shader; - GLenum p8_rect_shader, p8_2d_shader; + struct wine_rb_tree shaders; GLuint palette_texture; }; When you're resending the patch please take the opportunity to move the opening { to its own line.
Otherwise the patch (and the first one) looks good to me. Thanks for your perseverance :-) . I'll run the test in patch 3 on my Windows machines and report back. I ran the earlier version it on the Radeon X1600 + Win7 box yesterday. It passed, NV12 was supported, I420 was not. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJS/JOCAAoJEN0/YqbEcdMwmCgP/2SeBnj9x5Nm3iWAQnqwEHs9 1ECpmmuCkbEcjOgxCrZEQWf7iv9RyrX3iEjyjqs5JJfpckOFEH51ydb+7JQpG/Q4 3+gLlXA1R5Qnku+Iz+gS6JW3aRSGIowlnbWTsggrqj71FzonFroy71z1NRsVmIQI f8SpgmtSVRSUoQ3b3K0Zc2zUb6+oaBsk55zRC8W37RejA73Alsc+C3vad+mFpMxQ xOtVkCyMqMGIxvb+llUygSMVf7oIT8AbAW0Yy6RMzS4FElG41HkCk1tTWI93v6b1 Aq064B6nZ7fkSqktwMpxdP8+xxQpuUUSWL4jA3ydq0UNoK7CrPQJlsP/ePtMBVkb 4yylQeVw+2Z2LbeDOJWbtLCQXVuJdvii1ULjlQciWSMvABmLy04pb8NqRAzvYfrL WL12mLfjKmA+9oylMbFll321vIXyoIyOBvSITLrEolAOUGU+xZu+pdIR8lVoyJpQ Djdu2zRmQnKIv3Q8zFQsdk201xKI9SqZScQHO68IwqqyNK5cyhIg91d7lFDlMFJx BihHAXW61O+fZfz1Q+SGWEztaFYYNZouBhFo0F7odjCHHGodNjVtLVJaa6N7fLHA rEek5LL+Uj2kzg4r+t3EnpSn+qhwZ3kOQYgyNqHlvY/m1MqvDRBp5Ln0RU0qtFHm rhaw1CZsViF5dlKEB72H =7Xyb -----END PGP SIGNATURE-----
participants (1)
-
Stefan Dösinger