Found while refactoring FFP code; no known application is affected.
-- v2: wined3d/glsl: Pass through the specular varying when SPECULARENABLE is FALSE. wined3d/glsl: Always set WINED3D_SHADER_CONST_FFP_LIGHTS in FFP constant update masks. d3d8/tests: Add more tests for SPECULARENABLE.
From: Zebediah Figura zfigura@codeweavers.com
Show that it affects both the vertex and fragment FFP pipelines. --- dlls/d3d8/tests/visual.c | 195 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+)
diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c index 88bbaebb033..f6217e5f400 100644 --- a/dlls/d3d8/tests/visual.c +++ b/dlls/d3d8/tests/visual.c @@ -12188,6 +12188,200 @@ static void test_mipmap_upload(void) release_test_context(&context); }
+static void test_specular_shaders(void) +{ + struct d3d8_test_context context; + struct surface_readback rb; + IDirect3DDevice8 *device; + unsigned int color; + DWORD vs, ps; + HRESULT hr; + + static const DWORD vs_code[] = + { +#if 0 + vs_1_1 + mov oPos, v0 + mov oD0, v5 + mov oD1, v6 +#endif + 0xfffe0101, + 0x00000001, 0xc00f0000, 0x90e40000, + 0x00000001, 0xd00f0000, 0x90e40005, + 0x00000001, 0xd00f0001, 0x90e40006, + 0x0000ffff + }; + + static const DWORD ps_code[] = + { +#if 0 + ps_1_1 + mov r0, v1 +#endif + 0xffff0101, + 0x00000001, 0x800f0000, 0x90e40001, + 0x0000ffff + }; + + static const DWORD decl[] = + { + D3DVSD_STREAM(0), + D3DVSD_REG(D3DVSDE_POSITION, D3DVSDT_FLOAT3), + D3DVSD_REG(D3DVSDE_NORMAL, D3DVSDT_FLOAT3), + D3DVSD_REG(D3DVSDE_DIFFUSE, D3DVSDT_D3DCOLOR), + D3DVSD_REG(D3DVSDE_SPECULAR, D3DVSDT_D3DCOLOR), + D3DVSD_END() + }; + + static const struct + { + struct vec3 position; + struct vec3 normal; + unsigned int diffuse; + unsigned int specular; + } + quad[] = + { + {{-1.0f, -1.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, 0x0000003f, 0x00007f00}, + {{-1.0f, 1.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, 0x0000003f, 0x00007f00}, + {{ 1.0f, -1.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, 0x0000003f, 0x00007f00}, + {{ 1.0f, 1.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, 0x0000003f, 0x00007f00}, + }; + + static const D3DMATERIAL8 material = + { + .Specular = {0.7f, 0.0f, 0.7f, 1.0f}, + .Power = 2.0f, + }; + + static const D3DLIGHT8 light = + { + .Type = D3DLIGHT_DIRECTIONAL, + .Diffuse = {0.0f, 0.1f, 0.1f, 0.0f}, + .Specular = {0.8f, 0.8f, 0.8f, 0.0f}, + .Direction = {0.0f, 0.0f, -1.0f}, + }; + + if (!init_test_context(&context)) + return; + device = context.device; + + /* Vertex shader only. */ + + hr = IDirect3DDevice8_CreateVertexShader(device, decl, vs_code, &vs, 0); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + hr = IDirect3DDevice8_Clear(device, 0, NULL, D3DCLEAR_TARGET, 0xffff0000, 0.0, 0); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + hr = IDirect3DDevice8_BeginScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetVertexShader(device, vs); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetRenderState(device, D3DRS_ZENABLE, FALSE); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetRenderState(device, D3DRS_SPECULARENABLE, TRUE); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(*quad)); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_EndScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + check_rt_color(context.backbuffer, 0x00007f3f); + + hr = IDirect3DDevice8_BeginScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetRenderState(device, D3DRS_SPECULARENABLE, FALSE); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(*quad)); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_EndScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + check_rt_color(context.backbuffer, 0x0000003f); + + hr = IDirect3DDevice8_CreatePixelShader(device, ps_code, &ps); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + /* Pixel shader only. */ + + hr = IDirect3DDevice8_SetPixelShader(device, ps); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetVertexShader(device, D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_SPECULAR); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + hr = IDirect3DDevice8_SetMaterial(device, &material); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetLight(device, 0, &light); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_LightEnable(device, 0, TRUE); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + hr = IDirect3DDevice8_BeginScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetRenderState(device, D3DRS_SPECULARENABLE, TRUE); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(*quad)); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_EndScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + get_surface_readback(context.backbuffer, &rb); + color = get_readback_color(&rb, 160, 120); + todo_wine ok(color_match(color, 0x003300, 1), "Got color %08x.\n", color); + color = get_readback_color(&rb, 480, 120); + todo_wine ok(color_match(color, 0x001900, 1), "Got color %08x.\n", color); + color = get_readback_color(&rb, 160, 360); + todo_wine ok(color_match(color, 0x009900, 1), "Got color %08x.\n", color); + color = get_readback_color(&rb, 480, 360); + todo_wine ok(color_match(color, 0x003300, 1), "Got color %08x.\n", color); + release_surface_readback(&rb); + + hr = IDirect3DDevice8_BeginScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetRenderState(device, D3DRS_SPECULARENABLE, FALSE); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(*quad)); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_EndScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + check_rt_color_todo(context.backbuffer, 0x00007f00); + + hr = IDirect3DDevice8_BeginScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetRenderState(device, D3DRS_SPECULARMATERIALSOURCE, D3DMCS_MATERIAL); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(*quad)); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_EndScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + check_rt_color_todo(context.backbuffer, 0x00007f00); + + /* Vertex shader and pixel shader. */ + + hr = IDirect3DDevice8_SetVertexShader(device, vs); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + + hr = IDirect3DDevice8_BeginScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetRenderState(device, D3DRS_SPECULARENABLE, TRUE); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(*quad)); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_EndScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + check_rt_color(context.backbuffer, 0x00007f00); + + hr = IDirect3DDevice8_BeginScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_SetRenderState(device, D3DRS_SPECULARENABLE, FALSE); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_DrawPrimitiveUP(device, D3DPT_TRIANGLESTRIP, 2, quad, sizeof(*quad)); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + hr = IDirect3DDevice8_EndScene(device); + ok(hr == S_OK, "Got hr %#lx.\n", hr); + check_rt_color(context.backbuffer, 0x00007f00); + + release_test_context(&context); +} + START_TEST(visual) { D3DADAPTER_IDENTIFIER8 identifier; @@ -12271,4 +12465,5 @@ START_TEST(visual) test_filling_convention(); test_managed_reset(); test_mipmap_upload(); + test_specular_shaders(); }
From: Zebediah Figura zfigura@codeweavers.com
It is possible (if somewhat artificial) to use lighting without using ambient lighting. In this case ffp_light_ambient may not be an active uniform.
We could be more sophisticated here, and add lighting to the mask if we use any lighting uniform, but this is simpler and probably good enough. --- dlls/d3d8/tests/visual.c | 8 ++++---- dlls/wined3d/glsl_shader.c | 4 +--- 2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c index f6217e5f400..c605b53606c 100644 --- a/dlls/d3d8/tests/visual.c +++ b/dlls/d3d8/tests/visual.c @@ -12325,13 +12325,13 @@ static void test_specular_shaders(void) ok(hr == S_OK, "Got hr %#lx.\n", hr); get_surface_readback(context.backbuffer, &rb); color = get_readback_color(&rb, 160, 120); - todo_wine ok(color_match(color, 0x003300, 1), "Got color %08x.\n", color); + ok(color_match(color, 0x003300, 1), "Got color %08x.\n", color); color = get_readback_color(&rb, 480, 120); - todo_wine ok(color_match(color, 0x001900, 1), "Got color %08x.\n", color); + ok(color_match(color, 0x001900, 1), "Got color %08x.\n", color); color = get_readback_color(&rb, 160, 360); - todo_wine ok(color_match(color, 0x009900, 1), "Got color %08x.\n", color); + ok(color_match(color, 0x009900, 1), "Got color %08x.\n", color); color = get_readback_color(&rb, 480, 360); - todo_wine ok(color_match(color, 0x003300, 1), "Got color %08x.\n", color); + ok(color_match(color, 0x003300, 1), "Got color %08x.\n", color); release_surface_readback(&rb);
hr = IDirect3DDevice8_BeginScene(device); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 5dfcbb689b7..018b949f41c 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -10583,7 +10583,7 @@ static void set_glsl_shader_program(const struct wined3d_context_gl *context_gl, else { entry->constant_update_mask |= WINED3D_SHADER_CONST_FFP_MODELVIEW - | WINED3D_SHADER_CONST_FFP_PROJ; + | WINED3D_SHADER_CONST_FFP_PROJ | WINED3D_SHADER_CONST_FFP_LIGHTS;
for (i = 1; i < MAX_VERTEX_BLENDS; ++i) { @@ -10607,8 +10607,6 @@ static void set_glsl_shader_program(const struct wined3d_context_gl *context_gl, || entry->vs.material_emissive_location != -1 || entry->vs.material_shininess_location != -1) entry->constant_update_mask |= WINED3D_SHADER_CONST_FFP_MATERIAL; - if (entry->vs.light_ambient_location != -1) - entry->constant_update_mask |= WINED3D_SHADER_CONST_FFP_LIGHTS; } if (entry->vs.clip_planes_location != -1) entry->constant_update_mask |= WINED3D_SHADER_CONST_VS_CLIP_PLANES;
From: Zebediah Figura zfigura@codeweavers.com
--- dlls/d3d8/tests/visual.c | 4 ++-- dlls/wined3d/glsl_shader.c | 33 +++++++++++++++------------------ dlls/wined3d/utils.c | 1 + dlls/wined3d/wined3d_private.h | 3 ++- 4 files changed, 20 insertions(+), 21 deletions(-)
diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c index c605b53606c..b40743f0cbb 100644 --- a/dlls/d3d8/tests/visual.c +++ b/dlls/d3d8/tests/visual.c @@ -12342,7 +12342,7 @@ static void test_specular_shaders(void) ok(hr == S_OK, "Got hr %#lx.\n", hr); hr = IDirect3DDevice8_EndScene(device); ok(hr == S_OK, "Got hr %#lx.\n", hr); - check_rt_color_todo(context.backbuffer, 0x00007f00); + check_rt_color(context.backbuffer, 0x00007f00);
hr = IDirect3DDevice8_BeginScene(device); ok(hr == S_OK, "Got hr %#lx.\n", hr); @@ -12352,7 +12352,7 @@ static void test_specular_shaders(void) ok(hr == S_OK, "Got hr %#lx.\n", hr); hr = IDirect3DDevice8_EndScene(device); ok(hr == S_OK, "Got hr %#lx.\n", hr); - check_rt_color_todo(context.backbuffer, 0x00007f00); + check_rt_color(context.backbuffer, 0x00007f00);
/* Vertex shader and pixel shader. */
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 018b949f41c..2b6795753a9 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -1359,17 +1359,8 @@ static void shader_glsl_ffp_vertex_material_uniform(const struct wined3d_context { const struct wined3d_gl_info *gl_info = context_gl->gl_info;
- if (state->render_states[WINED3D_RS_SPECULARENABLE]) - { - GL_EXTCALL(glUniform4fv(prog->vs.material_specular_location, 1, &state->material.specular.r)); - GL_EXTCALL(glUniform1f(prog->vs.material_shininess_location, state->material.power)); - } - else - { - static const float black[] = {0.0f, 0.0f, 0.0f, 0.0f}; - - GL_EXTCALL(glUniform4fv(prog->vs.material_specular_location, 1, black)); - } + GL_EXTCALL(glUniform4fv(prog->vs.material_specular_location, 1, &state->material.specular.r)); + GL_EXTCALL(glUniform1f(prog->vs.material_shininess_location, state->material.power)); GL_EXTCALL(glUniform4fv(prog->vs.material_ambient_location, 1, &state->material.ambient.r)); GL_EXTCALL(glUniform4fv(prog->vs.material_diffuse_location, 1, &state->material.diffuse.r)); GL_EXTCALL(glUniform4fv(prog->vs.material_emissive_location, 1, &state->material.emissive.r)); @@ -8869,9 +8860,10 @@ static void shader_glsl_ffp_vertex_lighting_footer(struct wined3d_string_buffer shader_addline(buffer, "t = dot(normal, ffp_normalize(dir - ffp_normalize(ec_pos.xyz)));\n"); else shader_addline(buffer, "t = dot(normal, ffp_normalize(dir + vec3(0.0, 0.0, -1.0)));\n"); - shader_addline(buffer, "if (dot(dir, normal) > 0.0 && t > 0.0%s) specular +=" - " pow(t, ffp_material.shininess) * ffp_light[%u].specular * att;\n", - legacy_lighting ? " && ffp_material.shininess > 0.0" : "", idx); + if (settings->specular_enable) + shader_addline(buffer, "if (dot(dir, normal) > 0.0 && t > 0.0%s) specular +=" + " pow(t, ffp_material.shininess) * ffp_light[%u].specular * att;\n", + legacy_lighting ? " && ffp_material.shininess > 0.0" : "", idx); }
static void shader_glsl_ffp_vertex_lighting(struct wined3d_string_buffer *buffer, @@ -8889,10 +8881,12 @@ static void shader_glsl_ffp_vertex_lighting(struct wined3d_string_buffer *buffer
shader_addline(buffer, "vec3 ambient = ffp_light_ambient;\n"); shader_addline(buffer, "vec3 diffuse = vec3(0.0);\n"); - shader_addline(buffer, "vec4 specular = vec4(0.0);\n"); shader_addline(buffer, "vec3 dir, dst;\n"); shader_addline(buffer, "float att, t;\n");
+ if (settings->specular_enable) + shader_addline(buffer, "vec4 specular = vec4(0.0);\n"); + ambient = shader_glsl_ffp_mcs(settings->ambient_source, "ffp_material.ambient"); diffuse = shader_glsl_ffp_mcs(settings->diffuse_source, "ffp_material.diffuse"); specular = shader_glsl_ffp_mcs(settings->specular_source, "ffp_material.specular"); @@ -8994,7 +8988,10 @@ static void shader_glsl_ffp_vertex_lighting(struct wined3d_string_buffer *buffer shader_addline(buffer, "ffp_varying_diffuse.xyz = %s.xyz * ambient + %s.xyz * diffuse + %s.xyz;\n", ambient, diffuse, emissive); shader_addline(buffer, "ffp_varying_diffuse.w = %s.w;\n", diffuse); - shader_addline(buffer, "ffp_varying_specular = %s * specular;\n", specular); + if (settings->specular_enable) + shader_addline(buffer, "ffp_varying_specular = %s * specular;\n", specular); + else + shader_addline(buffer, "ffp_varying_specular = ffp_attrib_specular;\n"); }
/* Context activation is done by the caller. */ @@ -11905,8 +11902,7 @@ static const struct wined3d_state_entry_template glsl_vertex_pipe_vp_states[] = {STATE_SHADER(WINED3D_SHADER_TYPE_HULL), {STATE_SHADER(WINED3D_SHADER_TYPE_HULL), glsl_vertex_pipe_hs }, WINED3D_GL_EXT_NONE }, {STATE_SHADER(WINED3D_SHADER_TYPE_GEOMETRY), {STATE_SHADER(WINED3D_SHADER_TYPE_GEOMETRY), glsl_vertex_pipe_geometry_shader}, WINED3D_GL_EXT_NONE }, {STATE_SHADER(WINED3D_SHADER_TYPE_PIXEL), {STATE_SHADER(WINED3D_SHADER_TYPE_PIXEL), glsl_vertex_pipe_pixel_shader}, WINED3D_GL_EXT_NONE }, - {STATE_MATERIAL, {STATE_RENDER(WINED3D_RS_SPECULARENABLE), NULL }, WINED3D_GL_EXT_NONE }, - {STATE_RENDER(WINED3D_RS_SPECULARENABLE), {STATE_RENDER(WINED3D_RS_SPECULARENABLE), glsl_vertex_pipe_material}, WINED3D_GL_EXT_NONE }, + {STATE_MATERIAL, {STATE_MATERIAL, glsl_vertex_pipe_material}, WINED3D_GL_EXT_NONE }, /* Clip planes */ {STATE_CLIPPLANE(0), {STATE_CLIPPLANE(0), glsl_vertex_pipe_clip_plane}, WINED3D_GLSL_130 }, {STATE_CLIPPLANE(0), {STATE_CLIPPLANE(0), clipplane }, WINED3D_GL_EXT_NONE }, @@ -11984,6 +11980,7 @@ static const struct wined3d_state_entry_template glsl_vertex_pipe_vp_states[] = {STATE_RENDER(WINED3D_RS_AMBIENTMATERIALSOURCE), {STATE_SHADER(WINED3D_SHADER_TYPE_VERTEX), NULL }, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_EMISSIVEMATERIALSOURCE), {STATE_SHADER(WINED3D_SHADER_TYPE_VERTEX), NULL }, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_VERTEXBLEND), {STATE_SHADER(WINED3D_SHADER_TYPE_VERTEX), NULL }, WINED3D_GL_EXT_NONE }, + {STATE_RENDER(WINED3D_RS_SPECULARENABLE), {STATE_RENDER(WINED3D_RS_SPECULARENABLE), glsl_vertex_pipe_shader}, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_POINTSIZE), {STATE_RENDER(WINED3D_RS_POINTSIZE_MIN), NULL }, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_POINTSIZE_MIN), {STATE_RENDER(WINED3D_RS_POINTSIZE_MIN), glsl_vertex_pipe_pointsize}, WINED3D_GL_EXT_NONE }, {STATE_RENDER(WINED3D_RS_POINTSPRITEENABLE), {STATE_RENDER(WINED3D_RS_POINTSPRITEENABLE), state_pointsprite }, ARB_POINT_SPRITE }, diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index a46a4c7257d..f21ded36bff 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -6884,6 +6884,7 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, settings->normalize = settings->normal && state->render_states[WINED3D_RS_NORMALIZENORMALS]; settings->lighting = !!state->render_states[WINED3D_RS_LIGHTING]; settings->localviewer = !!state->render_states[WINED3D_RS_LOCALVIEWER]; + settings->specular_enable = !!state->render_states[WINED3D_RS_SPECULARENABLE]; settings->point_size = state->primitive_type == WINED3D_PT_POINTLIST; settings->per_vertex_point_size = !!(si->use_map & 1u << WINED3D_FFP_PSIZE);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index ff08a7f837f..9495845b294 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2759,7 +2759,8 @@ struct wined3d_ffp_vs_settings DWORD texcoords : 8; /* WINED3D_MAX_FFP_TEXTURES */ DWORD ortho_fog : 1; DWORD flatshading : 1; - DWORD padding : 18; + DWORD specular_enable : 1; + DWORD padding : 17;
DWORD swizzle_map; /* MAX_ATTRIBS, 32 */
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=142738
Your paranoid android.
=== debian11b (64 bit WoW report) ===
user32: input.c:600: Test failed: peek: lmenu_vkey_peeked: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: peek: lmenu_vkey_peeked: 0: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_vkey_peeked: 0: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_vkey_peeked: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x46, lparam 0x20020001 input.c:600: Test failed: peek: lmenu_vkey_peeked: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSCHAR, wparam 0x66, lparam 0x20020001 input.c:601: Test failed: peek: lmenu_vkey_peeked: 1: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_vkey_peeked: 1: got F: 0 input.c:601: Test failed: peek: lmenu_vkey_peeked: 1: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_vkey_peeked: 2: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x46, lparam 0xffffffffe0030001 input.c:601: Test failed: peek: lmenu_vkey_peeked: 2: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_vkey_peeked: 2: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_vkey_peeked: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x12, lparam 0xffffffffc0040001 input.c:600: Test failed: peek: lcontrol_vkey: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x10001 input.c:601: Test failed: peek: lcontrol_vkey: 0: got VK_CONTROL: 0 input.c:601: Test failed: peek: lcontrol_vkey: 0: got VK_LCONTROL: 0 input.c:600: Test failed: peek: lcontrol_vkey: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x46, lparam 0x20001 input.c:600: Test failed: peek: lcontrol_vkey: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x6, lparam 0x20001 input.c:601: Test failed: peek: lcontrol_vkey: 1: got VK_CONTROL: 0 input.c:601: Test failed: peek: lcontrol_vkey: 1: got F: 0 input.c:601: Test failed: peek: lcontrol_vkey: 1: got VK_LCONTROL: 0 input.c:600: Test failed: peek: lcontrol_vkey: 2: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x46, lparam 0xffffffffc0030001 input.c:601: Test failed: peek: lcontrol_vkey: 2: got VK_CONTROL: 0 input.c:601: Test failed: peek: lcontrol_vkey: 2: got VK_LCONTROL: 0 input.c:600: Test failed: peek: lcontrol_vkey: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc0040001 input.c:600: Test failed: peek: lmenu_lcontrol_vkey: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 0: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 0: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_lcontrol_vkey: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x20020001 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 1: got VK_CONTROL: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 1: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 1: got VK_LCONTROL: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 1: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_lcontrol_vkey: 2: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x46, lparam 0x20030001 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 2: got VK_CONTROL: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 2: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 2: got F: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 2: got VK_LCONTROL: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 2: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_lcontrol_vkey: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x46, lparam 0xffffffffe0040001 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 3: got VK_CONTROL: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 3: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 3: got VK_LCONTROL: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 3: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_lcontrol_vkey: 4: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x11, lparam 0xffffffffe0050001 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 4: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_lcontrol_vkey: 4: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_lcontrol_vkey: 5: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x12, lparam 0xffffffffc0060001 input.c:600: Test failed: peek: shift_vkey: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: peek: shift_vkey: 0: got VK_SHIFT: 0 input.c:601: Test failed: peek: shift_vkey: 0: got VK_LSHIFT: 0 input.c:600: Test failed: peek: shift_vkey: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x46, lparam 0x20001 input.c:600: Test failed: peek: shift_vkey: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x46, lparam 0x20001 input.c:601: Test failed: peek: shift_vkey: 1: got VK_SHIFT: 0 input.c:601: Test failed: peek: shift_vkey: 1: got F: 0 input.c:601: Test failed: peek: shift_vkey: 1: got VK_LSHIFT: 0 input.c:600: Test failed: peek: shift_vkey: 2: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x46, lparam 0xffffffffc0030001 input.c:601: Test failed: peek: shift_vkey: 2: got VK_SHIFT: 0 input.c:601: Test failed: peek: shift_vkey: 2: got VK_LSHIFT: 0 input.c:600: Test failed: peek: shift_vkey: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0040001 input.c:600: Test failed: peek: rshift: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: peek: rshift: 0: got VK_SHIFT: 0 input.c:601: Test succeeded inside todo block: peek: rshift: 0: got VK_LSHIFT: 0 input.c:600: Test failed: peek: rshift: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: lshift_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: peek: lshift_ext: 0: got VK_SHIFT: 0 input.c:601: Test failed: peek: lshift_ext: 0: got VK_RSHIFT: 0 input.c:600: Test failed: peek: lshift_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: rshift_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: peek: rshift_ext: 0: got VK_SHIFT: 0 input.c:601: Test failed: peek: rshift_ext: 0: got VK_RSHIFT: 0 input.c:600: Test failed: peek: rshift_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: shift: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: peek: shift: 0: got VK_SHIFT: 0 input.c:601: Test failed: peek: shift: 0: got VK_LSHIFT: 0 input.c:600: Test failed: peek: shift: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: shift_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: peek: shift_ext: 0: got VK_SHIFT: 0 input.c:601: Test failed: peek: shift_ext: 0: got VK_RSHIFT: 0 input.c:600: Test failed: peek: shift_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: rcontrol: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x10001 input.c:601: Test failed: peek: rcontrol: 0: got VK_CONTROL: 0 input.c:601: Test failed: peek: rcontrol: 0: got VK_LCONTROL: 0 input.c:600: Test failed: peek: rcontrol: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: lcontrol_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x1010001 input.c:601: Test failed: peek: lcontrol_ext: 0: got VK_CONTROL: 0 input.c:601: Test failed: peek: lcontrol_ext: 0: got VK_RCONTROL: 0 input.c:600: Test failed: peek: lcontrol_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc1020001 input.c:600: Test failed: peek: rcontrol_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x1010001 input.c:601: Test failed: peek: rcontrol_ext: 0: got VK_CONTROL: 0 input.c:601: Test failed: peek: rcontrol_ext: 0: got VK_RCONTROL: 0 input.c:600: Test failed: peek: rcontrol_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc1020001 input.c:600: Test failed: peek: control: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x10001 input.c:601: Test failed: peek: control: 0: got VK_CONTROL: 0 input.c:601: Test failed: peek: control: 0: got VK_LCONTROL: 0 input.c:600: Test failed: peek: control: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: control_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x1010001 input.c:601: Test failed: peek: control_ext: 0: got VK_CONTROL: 0 input.c:601: Test failed: peek: control_ext: 0: got VK_RCONTROL: 0 input.c:600: Test failed: peek: control_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc1020001 input.c:600: Test failed: peek: rmenu_peeked: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: peek: rmenu_peeked: 0: got VK_MENU: 0 input.c:601: Test failed: peek: rmenu_peeked: 0: got VK_LMENU: 0 input.c:600: Test failed: peek: rmenu_peeked: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: lmenu_ext_peeked: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x21010001 input.c:601: Test failed: peek: lmenu_ext_peeked: 0: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_ext_peeked: 0: got VK_RMENU: 0 input.c:600: Test failed: peek: lmenu_ext_peeked: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc1020001 input.c:600: Test failed: peek: rmenu_ext_peeked: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x21010001 input.c:601: Test failed: peek: rmenu_ext_peeked: 0: got VK_MENU: 0 input.c:601: Test failed: peek: rmenu_ext_peeked: 0: got VK_RMENU: 0 input.c:600: Test failed: peek: rmenu_ext_peeked: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc1020001 input.c:600: Test failed: peek: menu_peeked: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: peek: menu_peeked: 0: got VK_MENU: 0 input.c:601: Test failed: peek: menu_peeked: 0: got VK_LMENU: 0 input.c:600: Test failed: peek: menu_peeked: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc0020001 input.c:600: Test failed: peek: menu_ext_peeked: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x21010001 input.c:601: Test failed: peek: menu_ext_peeked: 0: got VK_MENU: 0 input.c:601: Test failed: peek: menu_ext_peeked: 0: got VK_RMENU: 0 input.c:600: Test failed: peek: menu_ext_peeked: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc1020001 input.c:600: Test failed: peek: lrshift_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: peek: lrshift_ext: 0: got VK_SHIFT: 0 input.c:601: Test failed: peek: lrshift_ext: 0: got VK_LSHIFT: 0 input.c:601: Test failed: peek: lrshift_ext: 1: got VK_SHIFT: 0 input.c:601: Test failed: peek: lrshift_ext: 1: got VK_LSHIFT: 0 input.c:601: Test failed: peek: lrshift_ext: 1: got VK_RSHIFT: 0 input.c:601: Test failed: peek: lrshift_ext: 2: got VK_SHIFT: 0 input.c:601: Test failed: peek: lrshift_ext: 2: got VK_LSHIFT: 0 input.c:600: Test failed: peek: lrshift_ext: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0040001 input.c:601: Test succeeded inside todo block: peek: rshift_scan: 0: got 0: 0 input.c:601: Test succeeded inside todo block: peek: rshift_scan: 1: got 0: 0 input.c:600: Test failed: peek: unicode: 0: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x3c0, lparam 0x1 input.c:601: Test failed: peek: unicode: 0: got 0xe7: 0 input.c:600: Test failed: peek: lmenu_unicode_peeked: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: peek: lmenu_unicode_peeked: 0: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_unicode_peeked: 0: got VK_LMENU: 0 input.c:601: Test failed: peek: lmenu_unicode_peeked: 1: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_unicode_peeked: 1: got VK_LMENU: 0 input.c:601: Test failed: peek: lmenu_unicode_peeked: 1: got 0xe7: 0 input.c:601: Test failed: peek: lmenu_unicode_peeked: 2: got VK_MENU: 0 input.c:601: Test failed: peek: lmenu_unicode_peeked: 2: got VK_LMENU: 0 input.c:600: Test failed: peek: lmenu_unicode_peeked: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x12, lparam 0xffffffffc0040001 input.c:601: Test failed: peek: unicode_vkey: 0: got F: 0 input.c:600: Test failed: receive: lmenu_vkey: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: receive: lmenu_vkey: 0: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_vkey: 0: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_vkey: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x46, lparam 0x20020001 input.c:600: Test failed: receive: lmenu_vkey: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSCHAR, wparam 0x66, lparam 0x20020001 input.c:600: Test failed: receive: lmenu_vkey: 1: test->expect 3 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSCOMMAND, wparam 0xf100, lparam 0x66 input.c:601: Test failed: receive: lmenu_vkey: 1: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_vkey: 1: got F: 0 input.c:601: Test failed: receive: lmenu_vkey: 1: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_vkey: 2: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x46, lparam 0xffffffffe0030001 input.c:601: Test failed: receive: lmenu_vkey: 2: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_vkey: 2: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_vkey: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x12, lparam 0xffffffffc0040001 input.c:600: Test failed: receive: lcontrol_vkey: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x10001 input.c:601: Test failed: receive: lcontrol_vkey: 0: got VK_CONTROL: 0 input.c:601: Test failed: receive: lcontrol_vkey: 0: got VK_LCONTROL: 0 input.c:600: Test failed: receive: lcontrol_vkey: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x46, lparam 0x20001 input.c:600: Test failed: receive: lcontrol_vkey: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x6, lparam 0x20001 input.c:601: Test failed: receive: lcontrol_vkey: 1: got VK_CONTROL: 0 input.c:601: Test failed: receive: lcontrol_vkey: 1: got F: 0 input.c:601: Test failed: receive: lcontrol_vkey: 1: got VK_LCONTROL: 0 input.c:600: Test failed: receive: lcontrol_vkey: 2: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x46, lparam 0xffffffffc0030001 input.c:601: Test failed: receive: lcontrol_vkey: 2: got VK_CONTROL: 0 input.c:601: Test failed: receive: lcontrol_vkey: 2: got VK_LCONTROL: 0 input.c:600: Test failed: receive: lcontrol_vkey: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc0040001 input.c:600: Test failed: receive: lmenu_lcontrol_vkey: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 0: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 0: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_lcontrol_vkey: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x20020001 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 1: got VK_CONTROL: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 1: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 1: got VK_LCONTROL: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 1: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_lcontrol_vkey: 2: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x46, lparam 0x20030001 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 2: got VK_CONTROL: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 2: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 2: got F: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 2: got VK_LCONTROL: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 2: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_lcontrol_vkey: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x46, lparam 0xffffffffe0040001 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 3: got VK_CONTROL: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 3: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 3: got VK_LCONTROL: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 3: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_lcontrol_vkey: 4: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x11, lparam 0xffffffffe0050001 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 4: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_lcontrol_vkey: 4: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_lcontrol_vkey: 5: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x12, lparam 0xffffffffc0060001 input.c:600: Test failed: receive: shift_vkey: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: receive: shift_vkey: 0: got VK_SHIFT: 0 input.c:601: Test failed: receive: shift_vkey: 0: got VK_LSHIFT: 0 input.c:600: Test failed: receive: shift_vkey: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x46, lparam 0x20001 input.c:600: Test failed: receive: shift_vkey: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x46, lparam 0x20001 input.c:601: Test failed: receive: shift_vkey: 1: got VK_SHIFT: 0 input.c:601: Test failed: receive: shift_vkey: 1: got F: 0 input.c:601: Test failed: receive: shift_vkey: 1: got VK_LSHIFT: 0 input.c:600: Test failed: receive: shift_vkey: 2: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x46, lparam 0xffffffffc0030001 input.c:601: Test failed: receive: shift_vkey: 2: got VK_SHIFT: 0 input.c:601: Test failed: receive: shift_vkey: 2: got VK_LSHIFT: 0 input.c:600: Test failed: receive: shift_vkey: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0040001 input.c:600: Test failed: receive: rshift: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: receive: rshift: 0: got VK_SHIFT: 0 input.c:601: Test succeeded inside todo block: receive: rshift: 0: got VK_LSHIFT: 0 input.c:600: Test failed: receive: rshift: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: lshift_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: receive: lshift_ext: 0: got VK_SHIFT: 0 input.c:601: Test failed: receive: lshift_ext: 0: got VK_RSHIFT: 0 input.c:600: Test failed: receive: lshift_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: rshift_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: receive: rshift_ext: 0: got VK_SHIFT: 0 input.c:601: Test failed: receive: rshift_ext: 0: got VK_RSHIFT: 0 input.c:600: Test failed: receive: rshift_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: shift: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: receive: shift: 0: got VK_SHIFT: 0 input.c:601: Test failed: receive: shift: 0: got VK_LSHIFT: 0 input.c:600: Test failed: receive: shift: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: shift_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: receive: shift_ext: 0: got VK_SHIFT: 0 input.c:601: Test failed: receive: shift_ext: 0: got VK_RSHIFT: 0 input.c:600: Test failed: receive: shift_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: rcontrol: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x10001 input.c:601: Test failed: receive: rcontrol: 0: got VK_CONTROL: 0 input.c:601: Test failed: receive: rcontrol: 0: got VK_LCONTROL: 0 input.c:600: Test failed: receive: rcontrol: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: lcontrol_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x1010001 input.c:601: Test failed: receive: lcontrol_ext: 0: got VK_CONTROL: 0 input.c:601: Test failed: receive: lcontrol_ext: 0: got VK_RCONTROL: 0 input.c:600: Test failed: receive: lcontrol_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc1020001 input.c:600: Test failed: receive: rcontrol_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x1010001 input.c:601: Test failed: receive: rcontrol_ext: 0: got VK_CONTROL: 0 input.c:601: Test failed: receive: rcontrol_ext: 0: got VK_RCONTROL: 0 input.c:600: Test failed: receive: rcontrol_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc1020001 input.c:600: Test failed: receive: control: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x10001 input.c:601: Test failed: receive: control: 0: got VK_CONTROL: 0 input.c:601: Test failed: receive: control: 0: got VK_LCONTROL: 0 input.c:600: Test failed: receive: control: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: control_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x11, lparam 0x1010001 input.c:601: Test failed: receive: control_ext: 0: got VK_CONTROL: 0 input.c:601: Test failed: receive: control_ext: 0: got VK_RCONTROL: 0 input.c:600: Test failed: receive: control_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x11, lparam 0xffffffffc1020001 input.c:600: Test failed: receive: rmenu: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: receive: rmenu: 0: got VK_MENU: 0 input.c:601: Test failed: receive: rmenu: 0: got VK_LMENU: 0 input.c:600: Test failed: receive: rmenu: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: rmenu: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSCOMMAND, wparam 0xf100, lparam 0 input.c:600: Test failed: receive: lmenu_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x21010001 input.c:601: Test failed: receive: lmenu_ext: 0: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_ext: 0: got VK_RMENU: 0 input.c:600: Test failed: receive: lmenu_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc1020001 input.c:600: Test failed: receive: lmenu_ext: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSCOMMAND, wparam 0xf100, lparam 0 input.c:600: Test failed: receive: rmenu_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x21010001 input.c:601: Test failed: receive: rmenu_ext: 0: got VK_MENU: 0 input.c:601: Test failed: receive: rmenu_ext: 0: got VK_RMENU: 0 input.c:600: Test failed: receive: rmenu_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc1020001 input.c:600: Test failed: receive: rmenu_ext: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSCOMMAND, wparam 0xf100, lparam 0 input.c:600: Test failed: receive: menu: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: receive: menu: 0: got VK_MENU: 0 input.c:601: Test failed: receive: menu: 0: got VK_LMENU: 0 input.c:600: Test failed: receive: menu: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc0020001 input.c:600: Test failed: receive: menu: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSCOMMAND, wparam 0xf100, lparam 0 input.c:600: Test failed: receive: menu_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x21010001 input.c:601: Test failed: receive: menu_ext: 0: got VK_MENU: 0 input.c:601: Test failed: receive: menu_ext: 0: got VK_RMENU: 0 input.c:600: Test failed: receive: menu_ext: 1: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYUP, wparam 0x12, lparam 0xffffffffc1020001 input.c:600: Test failed: receive: menu_ext: 1: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSCOMMAND, wparam 0xf100, lparam 0 input.c:600: Test failed: receive: lrshift_ext: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYDOWN, wparam 0x10, lparam 0x10001 input.c:601: Test failed: receive: lrshift_ext: 0: got VK_SHIFT: 0 input.c:601: Test failed: receive: lrshift_ext: 0: got VK_LSHIFT: 0 input.c:601: Test failed: receive: lrshift_ext: 1: got VK_SHIFT: 0 input.c:601: Test failed: receive: lrshift_ext: 1: got VK_LSHIFT: 0 input.c:601: Test failed: receive: lrshift_ext: 1: got VK_RSHIFT: 0 input.c:601: Test failed: receive: lrshift_ext: 2: got VK_SHIFT: 0 input.c:601: Test failed: receive: lrshift_ext: 2: got VK_LSHIFT: 0 input.c:600: Test failed: receive: lrshift_ext: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x10, lparam 0xffffffffc0040001 input.c:601: Test succeeded inside todo block: receive: rshift_scan: 0: got 0: 0 input.c:601: Test succeeded inside todo block: receive: rshift_scan: 1: got 0: 0 input.c:600: Test failed: receive: unicode: 0: test->expect 2 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_CHAR, wparam 0x3c0, lparam 0x1 input.c:601: Test failed: receive: unicode: 0: got 0xe7: 0 input.c:600: Test failed: receive: lmenu_unicode: 0: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_SYSKEYDOWN, wparam 0x12, lparam 0x20010001 input.c:601: Test failed: receive: lmenu_unicode: 0: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_unicode: 0: got VK_LMENU: 0 input.c:601: Test failed: receive: lmenu_unicode: 1: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_unicode: 1: got VK_LMENU: 0 input.c:601: Test failed: receive: lmenu_unicode: 1: got 0xe7: 0 input.c:601: Test failed: receive: lmenu_unicode: 2: got VK_MENU: 0 input.c:601: Test failed: receive: lmenu_unicode: 2: got VK_LMENU: 0 input.c:600: Test failed: receive: lmenu_unicode: 3: test->expect 1 (missing): MSG_TEST_WIN hwnd 0000000000000000, WM_KEYUP, wparam 0x12, lparam 0xffffffffc0040001 input.c:601: Test failed: receive: unicode_vkey: 0: got F: 0
Report validation errors: user32:input prints too much data (54671 bytes)
This merge request was approved by Jan Sikorski.