GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING,
WINED3D_GL_EXT_NONE},
- {WINED3DFMT_R16G16_UNORM, GL_RGB16_EXT, GL_RGB16_EXT, GL_RGBA16_EXT,
+ {WINED3DFMT_R16G16_UNORM, GL_RGB16, GL_RGB16, GL_RGBA16,
GL_RGB, GL_UNSIGNED_SHORT,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING,
WINED3D_GL_EXT_NONE},
GL_BGRA, GL_UNSIGNED_INT_2_10_10_10_REV,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING,
WINED3D_GL_EXT_NONE},
- {WINED3DFMT_R16G16B16A16_UNORM, GL_RGBA16_EXT, GL_RGBA16_EXT, 0,
+ {WINED3DFMT_R16G16B16A16_UNORM, GL_RGBA16, GL_RGBA16, 0,
GL_RGBA, GL_UNSIGNED_SHORT,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_RENDERTARGET,
WINED3D_GL_EXT_NONE},
GL_RGBA, GL_BYTE,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING,
NV_TEXTURE_SHADER},
- {WINED3DFMT_R16G16_SNORM, GL_RGB16_EXT, GL_RGB16_EXT, 0,
+ {WINED3DFMT_R16G16_SNORM, GL_RGB16, GL_RGB16, 0,
GL_BGR, GL_UNSIGNED_SHORT,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING,
WINED3D_GL_EXT_NONE},
GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING | WINED3DFMT_FLAG_DEPTH,
ARB_DEPTH_TEXTURE},
- {WINED3DFMT_L16_UNORM, GL_LUMINANCE16_EXT, GL_LUMINANCE16_EXT, 0,
+ {WINED3DFMT_L16_UNORM, GL_LUMINANCE16, GL_LUMINANCE16, 0,
GL_LUMINANCE, GL_UNSIGNED_SHORT,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING | WINED3DFMT_FLAG_FILTERING,
WINED3D_GL_EXT_NONE},
if(wined3d_settings.offscreen_rendering_mode != ORM_FBO)
{
WARN("No FBO support, or no FBO ORM, guessing filter info from GL caps\n");
- if (vendor == VENDOR_NVIDIA && gl_info->supported[ARB_TEXTURE_FLOAT])
+ if (vendor == HW_VENDOR_NVIDIA && gl_info->supported[ARB_TEXTURE_FLOAT])
{
TRACE("Nvidia card with texture_float support: Assuming float16 blending\n");
filtered = TRUE;
if (!gl_info->supported[APPLE_YCBCR_422])
{
idx = getFmtIdx(WINED3DFMT_YUY2);
- gl_info->gl_formats[idx].color_fixup = create_yuv_fixup_desc(YUV_FIXUP_YUY2);
+ gl_info->gl_formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_YUY2);
idx = getFmtIdx(WINED3DFMT_UYVY);
- gl_info->gl_formats[idx].color_fixup = create_yuv_fixup_desc(YUV_FIXUP_UYVY);
+ gl_info->gl_formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_UYVY);
}
idx = getFmtIdx(WINED3DFMT_YV12);
gl_info->gl_formats[idx].heightscale = 1.5f;
- gl_info->gl_formats[idx].color_fixup = create_yuv_fixup_desc(YUV_FIXUP_YV12);
+ gl_info->gl_formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_YV12);
- if (gl_info->supported[EXT_VERTEX_ARRAY_BGRA])
+ idx = getFmtIdx(WINED3DFMT_P8_UINT);
+ gl_info->gl_formats[idx].color_fixup = create_complex_fixup_desc(COMPLEX_FIXUP_P8);
+
+ if (gl_info->supported[ARB_VERTEX_ARRAY_BGRA])
{
idx = getFmtIdx(WINED3DFMT_B8G8R8A8_UNORM);
gl_info->gl_formats[idx].gl_vtx_format = GL_BGRA;
}
}
+const char *debug_d3dstate(DWORD state)
+{
+ if (STATE_IS_RENDER(state))
+ return wine_dbg_sprintf("STATE_RENDER(%s)", debug_d3drenderstate(state - STATE_RENDER(0)));
+ if (STATE_IS_TEXTURESTAGE(state))
+ {
+ DWORD texture_stage = (state - STATE_TEXTURESTAGE(0, 0)) / (WINED3D_HIGHEST_TEXTURE_STATE + 1);
+ DWORD texture_state = state - STATE_TEXTURESTAGE(texture_stage, 0);
+ return wine_dbg_sprintf("STATE_TEXTURESTAGE(%#x, %s)",
+ texture_stage, debug_d3dtexturestate(texture_state));
+ }
+ if (STATE_IS_SAMPLER(state))
+ return wine_dbg_sprintf("STATE_SAMPLER(%#x)", state - STATE_SAMPLER(0));
+ if (STATE_IS_PIXELSHADER(state))
+ return "STATE_PIXELSHADER";
+ if (STATE_IS_TRANSFORM(state))
+ return wine_dbg_sprintf("STATE_TRANSFORM(%s)", debug_d3dtstype(state - STATE_TRANSFORM(0)));
+ if (STATE_IS_STREAMSRC(state))
+ return "STATE_STREAMSRC";
+ if (STATE_IS_INDEXBUFFER(state))
+ return "STATE_INDEXBUFFER";
+ if (STATE_IS_VDECL(state))
+ return "STATE_VDECL";
+ if (STATE_IS_VSHADER(state))
+ return "STATE_VSHADER";
+ if (STATE_IS_VIEWPORT(state))
+ return "STATE_VIEWPORT";
+ if (STATE_IS_VERTEXSHADERCONSTANT(state))
+ return "STATE_VERTEXSHADERCONSTANT";
+ if (STATE_IS_PIXELSHADERCONSTANT(state))
+ return "STATE_PIXELSHADERCONSTANT";
+ if (STATE_IS_ACTIVELIGHT(state))
+ return wine_dbg_sprintf("STATE_ACTIVELIGHT(%#x)", state - STATE_ACTIVELIGHT(0));
+ if (STATE_IS_SCISSORRECT(state))
+ return "STATE_SCISSORRECT";
+ if (STATE_IS_CLIPPLANE(state))
+ return wine_dbg_sprintf("STATE_CLIPPLANE(%#x)", state - STATE_CLIPPLANE(0));
+ if (STATE_IS_MATERIAL(state))
+ return "STATE_MATERIAL";
+ if (STATE_IS_FRONTFACE(state))
+ return "STATE_FRONTFACE";
+
+ return wine_dbg_sprintf("UNKNOWN_STATE(%#x)", state);
+}
+
const char* debug_d3dpool(WINED3DPOOL Pool) {
switch (Pool) {
#define POOL_TO_STR(p) case p: return #p
WINED3D_TO_STR(CHANNEL_SOURCE_Y);
WINED3D_TO_STR(CHANNEL_SOURCE_Z);
WINED3D_TO_STR(CHANNEL_SOURCE_W);
- WINED3D_TO_STR(CHANNEL_SOURCE_YUV0);
- WINED3D_TO_STR(CHANNEL_SOURCE_YUV1);
+ WINED3D_TO_STR(CHANNEL_SOURCE_COMPLEX0);
+ WINED3D_TO_STR(CHANNEL_SOURCE_COMPLEX1);
#undef WINED3D_TO_STR
default:
FIXME("Unrecognized fixup_channel_source %#x\n", source);
}
}
-static const char *debug_yuv_fixup(enum yuv_fixup yuv_fixup)
+static const char *debug_complex_fixup(enum complex_fixup fixup)
{
- switch(yuv_fixup)
+ switch(fixup)
{
#define WINED3D_TO_STR(x) case x: return #x
- WINED3D_TO_STR(YUV_FIXUP_YUY2);
- WINED3D_TO_STR(YUV_FIXUP_UYVY);
- WINED3D_TO_STR(YUV_FIXUP_YV12);
+ WINED3D_TO_STR(COMPLEX_FIXUP_YUY2);
+ WINED3D_TO_STR(COMPLEX_FIXUP_UYVY);
+ WINED3D_TO_STR(COMPLEX_FIXUP_YV12);
+ WINED3D_TO_STR(COMPLEX_FIXUP_P8);
#undef WINED3D_TO_STR
default:
- FIXME("Unrecognized YUV fixup %#x\n", yuv_fixup);
+ FIXME("Unrecognized complex fixup %#x\n", fixup);
return "unrecognized";
}
}
void dump_color_fixup_desc(struct color_fixup_desc fixup)
{
- if (is_yuv_fixup(fixup))
+ if (is_complex_fixup(fixup))
{
- TRACE("\tYUV: %s\n", debug_yuv_fixup(get_yuv_fixup(fixup)));
+ TRACE("\tComplex: %s\n", debug_complex_fixup(get_complex_fixup(fixup)));
return;
}
else if (gl_info->supported[ATI_FRAGMENT_SHADER]) *ps_selected = SHADER_ATI;
else *ps_selected = SHADER_NONE;
}
-
-const shader_backend_t *select_shader_backend(struct wined3d_adapter *adapter, WINED3DDEVTYPE device_type)
-{
- int vs_selected_mode, ps_selected_mode;
-
- select_shader_mode(&adapter->gl_info, &ps_selected_mode, &vs_selected_mode);
- if (vs_selected_mode == SHADER_GLSL || ps_selected_mode == SHADER_GLSL) return &glsl_shader_backend;
- if (vs_selected_mode == SHADER_ARB || ps_selected_mode == SHADER_ARB) return &arb_program_shader_backend;
- return &none_shader_backend;
-}
-
-const struct fragment_pipeline *select_fragment_implementation(struct wined3d_adapter *adapter,
- WINED3DDEVTYPE device_type)
-{
- const struct wined3d_gl_info *gl_info = &adapter->gl_info;
- int vs_selected_mode, ps_selected_mode;
-
- select_shader_mode(gl_info, &ps_selected_mode, &vs_selected_mode);
- if ((ps_selected_mode == SHADER_ARB || ps_selected_mode == SHADER_GLSL)
- && gl_info->supported[ARB_FRAGMENT_PROGRAM]) return &arbfp_fragment_pipeline;
- else if (ps_selected_mode == SHADER_ATI) return &atifs_fragment_pipeline;
- else if (gl_info->supported[NV_REGISTER_COMBINERS]
- && gl_info->supported[NV_TEXTURE_SHADER2]) return &nvts_fragment_pipeline;
- else if (gl_info->supported[NV_REGISTER_COMBINERS]) return &nvrc_fragment_pipeline;
- else return &ffp_fragment_pipeline;
-}
-
-const struct blit_shader *select_blit_implementation(struct wined3d_adapter *adapter, WINED3DDEVTYPE device_type)
-{
- const struct wined3d_gl_info *gl_info = &adapter->gl_info;
- int vs_selected_mode, ps_selected_mode;
-
- select_shader_mode(gl_info, &ps_selected_mode, &vs_selected_mode);
- if ((ps_selected_mode == SHADER_ARB || ps_selected_mode == SHADER_GLSL)
- && gl_info->supported[ARB_FRAGMENT_PROGRAM]) return &arbfp_blit;
- else return &ffp_blit;
-}