Wine Announcement

The Wine development release 1.9.6 is now available.

What's new in this release (see below for details):
  - Better video card detection when using Mesa.
  - Support for Shader Model 5 shaders.
  - C++ exception handling improvements.
  - Various bug fixes.

The source is available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.


Bugs fixed in 1.9.6 (total 32):

  17540  Zondervan Pradis 6.0 hangs due to ole32.dll.CoGetCurrentLogicalThreadId stub
  21475  TI Interactive application fails when attempting to display the TI math palette
  22533  Half-Life: Logo video rendering is wrong (msrle32 does not handle frames with 0 biClrUsed)
  25086  Multiple games and applications need kernel32.GetLogicalProcessorInformationEx implementation (CPU-Z 1.72, Splinter Cell: Blacklist, Adobe CC 2015, Kontakt 5)
  28177  Adventure games from Kheops Studio hang after the logo screen (Safecracker, Destination: Treasure Island, Nostradamus: Lost Prophecy, Dracula 3, Return to Mysterious Island 2)
  29458  Explorer sometimes crashes on drag-and-drop in folders accessed from "/"
  32237  A slower speed of light: Summer 2012 version crashes after Intro
  32314  Pikachu Volleyball (English version) crashes on restart
  32827  Legrand XlPro 3 (MFC app) crashes on startup (failure to load registry-free COM servers via app hook, 'OleCreate' must ignore HRESULT of 'IOleObject::GetMiscStatus')
  33787  IE8 crashes on new tab
  34303  underlined 8 point Times New Roman text doesn't display as underlined
  35471  Telepone (MTSP FIM) needs msvcr100.dll._CreateFrameInfo
  37949  eLicenser Control Center needs msvcr80.dll.__CxxRegisterExceptionObject
  39239  ole32:compobj fails if privileges not high enough
  39278  Multiple DirectX 10 games crash on unimplemented function d3d10_1.dll.D3D10CreateDeviceAndSwapChain1 (Assassin's Creed)
  39461  Garmin Homeport 2.2.9 crashes on unimplemented function msvcr90.dll.__CxxRegisterExceptionObject
  39510  EZCastPro 1.4/1.5 crashes on unimplemented function USER32.dll.QueryDisplayConfig
  39577  Fallout 4 needs WINED3DFMT_R11G11B10_FLOAT render target
  39674  3Dmark03, 05, 06 not started "System Info Error"
  39797  The suffering does not start, needs wmasf.dll
  39878  Diablo II does not start on 64bit system with more than 2GB VRAM cards
  39918  Mail.Ru GameCenter installer does not work
  40115  ole32:compobj regression (privilege issue)
  40147  Assertion 'm->state == STATE_PASSIVE' failed at pulse/mainloop.c:827 on starting Skype
  40190  7z fails at enumerating network places
  40201  EccoPro only works on Wine 1.6.2
  40221  Adobe Illustrator CC 2015 needs user32.GetGestureConfig
  40222  IMalloc(Spy)::Free nullptr
  40246  Please document WINEBUILD in the winegcc manpage
  40253  Build regression: Can't remove fonts: is a directory (--with-wine64, shared wow64)
  40287  steamwebhelper crashes in Windows 7 mode
  40312  Please look for builtin *.fon fonts in fontdir


Changes since 1.9.5:

Alex Henrie (1):
      user32: Don't put a default icon on modal dialogs.

Alexandre Julliard (5):
      configure: Don't create makefiles in directories that are symlinks in a Wow64 build.
      libwine: Don't include backwards compatibility functions on Android.
      advapi32: Fix null termination in RegQueryInfoKeyA.
      vssapi: Undefine __thiscall before redefining it.
      gdi32: Take into account the fontdir directory specified at build time.

Alistair Leslie-Hughes (3):
      d3d10_1: Implement D3D10CreateDeviceAndSwapChain1().
      user32: Don't crash in DrawTextEx when tab length is zero.
      include: Add authz.h.

Andrew Eikum (7):
      winepulse.drv: Check that the server connection actually succeeded.
      mmdevapi: Implement IAudioEndpointVolume::GetVolumeRange.
      mmdevapi: Implement Set/GetMasterVolumeLevel.
      mmdevapi: Implement Set/GetMute.
      dinput: Fix condition effect joystick offset calculation.
      windowscodecs: Stub IWICMetadataQueryReader.
      windowscodecs: Stub IMetadataBlockReader for jpegformat.

André Hentschel (3):
      wrc: Remove getopt prototype.
      winemaker: Markup fixes in German translation.
      advapi32: Add CreatePrivateObjectSecurityEx.

Austin English (8):
      wmasf: Add stub dll.
      api-ms-win-core-file-l1-2-1: Add dll.
      api-ms-win-core-memory-l1-1-2: Add dll.
      api-ms-win-core-version-l1-1-0: Add dll.
      api-ms-win-core-string-l2-1-0: Add dll.
      user32: Add GetGestureConfig stub.
      user32: Add QueryDisplayConfig stub.
      bthprops.cpl: Add BluetoothFindFirstRadio/BluetoothFindRadioClose stubs.

Bruno Jesus (1):
      msrle32: Use the correct number of colors when biClrUsed = 0.

François Gouget (3):
      include: Don't use the visibility attribute on Solaris.
      shlwapi/tests: Fix a test failure on Windows 10.
      d3dx9/tests: Add a trailing '\n' to an ok() call.

Frédéric Delanoy (1):
      winemaker: Markup fixes in French translation.

Hans Leidekker (2):
      webservices: Keep track of prefix bindings.
      winhttp/tests: Fix test failures.

Henri Verbeet (50):
      wined3d: Get resource info from the texture in context_setup_target().
      wined3d: Get resource info from the texture in wined3d_device_set_cursor_properties().
      wined3d: Get resource info from the rendertarget view in device_clear_render_targets().
      wined3d: Get resource info from the rendertarget view in draw_primitive().
      wined3d: Get resource info from the texture in wined3d_surface_blt().
      wined3d: Replace device_update_volume() with a function to update multiple levels of a 3D texture.
      wined3d: Pass a texture and sub-resource index to wined3d_device_create_cursor_texture().
      wined3d: Use the resource map/unmap functions in wined3d_device_set_cursor_properties().
      wined3d: Pass a texture and sub-resource index to surface_convert_format().
      wined3d: Pass textures and sub-resource indices to surface_cpu_blt().
      wined3d: Use D3DCOLORTOGLFLOAT4 in drawStridedSlow().
      wined3d: Get rid of the D3DCOLOR_[RGBA] macros.
      wined3d: Replace D3DCOLORTOGLFLOAT4 with an inline function.
      wined3d: Sanitise map flags in wined3d_surface_map().
      wined3d: Introduce wined3d_volume_prepare_location().
      wined3d: Keep track of the download count in the texture.
      wined3d: Introduce helpers functions to calculate texture level dimensions.
      wined3d: Don't call surface_load_ds_location() directly.
      wined3d: Properly handle discarded surfaces in surface_load_location().
      wined3d: Use ARB_map_buffer_range in wined3d_surface_map() when available.
      wined3d: "render_targets" is never NULL in context_find_fbo_entry().
      ddraw/tests: Skip initialising "quad" and "indices" in test_specular_lighting() if a 3D device can't be created.
      d3dx9: "param" should never be NULL in free_parameter().
      d3dx9/tests: Get rid of a redundant NULL check in test_effect_states().
      d3dx9/tests: Get rid of some redundant NULL checks in D3DXCreateTextTest().
      wined3d: Get resource info from the texture in wined3d_surface_cleanup().
      wined3d: Get resource info from the texture in surface_create_dib_section().
      wined3d: Get resource info from the texture in surface_private_setup().
      wined3d: Get resource info from the texture in surface_depth_blt_fbo().
      wined3d: Get resource info from the texture in surface_blt_fbo().
      wined3d: Get resource info from the texture in surface_convert_depth_to_float().
      wined3d: Allow swapchain sample counts to be overridden with a registry key.
      ddraw: Do not destroy surfaces that are still attached.
      ddraw: Avoid d3d_device_update_depth_stencil() in ddraw_surface_delete_attached_surface().
      ddraw: Just return an error if we failed to find the predecessor in ddraw_surface_delete_attached_surface().
      opengl32: Introduce WGL_WINE_query_renderer.
      winex11: Implement WGL_WINE_query_renderer on top of GLX_MESA_query_renderer.
      wined3d: Use WGL_WINE_query_renderer to query GPU information.
      wined3d: Get resource info from the texture in wined3d_surface_depth_fill().
      wined3d: Get resource info from the texture in surface_download_data().
      wined3d: Get resource info from the texture in wined3d_surface_upload_data().
      wined3d: Get resource info from the texture in surface_upload_from_surface().
      wined3d: Get resource info from the texture in surface_set_compatible_renderbuffer().
      wined3d: Get resource info from the texture in surface_load().
      wined3d: Properly check if sRGB writes should be enabled in context_apply_clear_state().
      wined3d: Require a valid rectangle pointer if rect_count is non-zero in device_clear_render_targets().
      wined3d: Ignore the dirty region for swapchain presents more explicitly.
      wined3d: Handle NULL rectangles in wined3d_swapchain_present().
      wined3d: Explicitly check for WINED3DUSAGE_TEXTURE when validating surface dimensions in surface_private_setup().
      wined3d: Get rid of the WINED3DUSAGE_OVERLAY check in gdi_surface_private_setup().

Hugh McMaster (3):
      reg: Correctly handle cases with no data argument.
      reg: Fail if /v is passed without an argument.
      reg: Fail if multiple /v switches are passed in.

Huw D. M. Davies (5):
      gdi32: Generate EMR_POLYPOLY{LINE|GON}16 records if the co-ords fit.
      gdi32: Don't update the bounds if any poly{line|gon} has fewer than two points.
      gdi32/tests: Add tests for EMF PolyPolyline record creation.
      riched20: \pard resets the reading direction.
      riched20: Set the base embedding level for RTL paragraphs.

Jacek Caban (6):
      winex11.drv: Use grabbed window display in SetCapture.
      kernel32: Don't set unconditionally SECTION_QUERY flag in OpenFileMapping.
      msxml3: Store xmlnode reference in xmlnodemap object.
      msxml6: Added support for CLSID_XMLSchemaCache60 in XMLSchemaCache60::QueryInterface.
      mshtml: Fixed cloning comment nodes.
      mshtml: Fixed copy&paste typo in GetAsciiHostPort implementation.

Jens Reyer (1):
      winegcc: Document WINEBUILD in the manpage.

Józef Kucia (43):
      d3d10_1/tests: Port test_create_device() from d3d11.
      d3d10core/tests: Add test for creating RTV with DXGI_FORMAT_UNKNOWN.
      d3d11/tests: Add test for creating RTV with DXGI_FORMAT_UNKNOWN.
      d3d10core/tests: Add test for creating DSV with DXGI_FORMAT_UNKNOWN.
      d3d11/tests: Add test for creating DSV with DXGI_FORMAT_UNKNOWN.
      d3d11/tests: Introduce d3d11_test_context for visual tests.
      d3d11/tests: Introduce draw_quad().
      wined3d: Recognize aoffimmi shader instruction modifier.
      wined3d: Extend shader_glsl_gen_sample_code() to support offsets.
      wined3d: Implement aoffimmi modifier for SM4 ld instruction in GLSL backend.
      wined3d: Implement aoffimmi modifier for SM4 sample instructions in GLSL backend.
      wined3d: Simplify shader_glsl_append_imm_ivec().
      wined3d: Improve ERR() message in shader_glsl_get_sample_function().
      d3d10core/tests: Introduce d3d10core_test_context for visual tests.
      d3d10core/tests: Introduce draw_quad().
      d3d11/tests: Drop redundant feature level check.
      wined3d: Advertise WINED3DFMT_BC{4, 5}_UNORM 3D textures as not supported.
      wined3d: Limit amount of video memory for older Windows versions.
      d3d11/tests: Trace feature level.
      d3d10core/tests: Move typeless textures test to test_create_texture{2d, 3d}().
      d3d11/tests: Move typeless textures test to test_create_texture{2d, 3d}().
      d3d11/tests: Add more create texture tests.
      d3d11: Translate WINED3DERR_INVALIDCALL to E_INVALIDARG in d3d_texture{2d, 3d}_init().
      d3d10core/tests: Add more create texture tests.
      wined3d: Introduce debug_color().
      wined3d: Implement depth clear in wined3d_device_clear_rendertarget_view().
      wined3d: Implement stencil clear in wined3d_device_clear_rendertarget_view().
      d3d11: Implement d3d11_immediate_context_ClearDepthStencilView().
      d3d11: Implement d3d10_device_ClearDepthStencilView().
      d3d10core/tests: Add test for ClearDepthStencilView().
      d3d11/tests: Add test for ClearDepthStencilView().
      d3d11: Fill unused fields in D3D11_DEPTH_STENCIL_DESC with default values.
      d3d10core/tests: Test values of unused fields in D3D10_DEPTH_STENCIL_DESC.
      d3d11/tests: Test values of unused fields in D3D11_DEPTH_STENCIL_DESC.
      d3d11: Implement d3d11_immediate_context_OMSetDepthStencilState().
      d3d11: Forward d3d10_device_OMSetDepthStencilState() to d3d11_immediate_context_OMSetDepthStencilState().
      d3d11: Introduce debug_float4().
      wined3d: Recognize SM5 ld_structured opcode.
      wined3d: Recognize SM5 deriv_rtx_coarse opcode.
      wined3d: Recognize SM5 deriv_rty_coarse opcode.
      wined3d: Recognize SM5 deriv_rtx_fine opcode.
      wined3d: Recognize SM5 deriv_rty_fine opcode.
      wined3d: Use GLuint instead of GLenum to store ARB blitter shaders.

Louis Lenders (1):
      ntdll: Add stub for RtlAddAccessDeniedObjectAce and forward to AddAccessDeniedObjectAce in advapi32.

Matteo Bruni (13):
      d3dx9: Trace the parameter passed to IsParameterUsed().
      d3d11/tests: Require feature level 11_0 or 10_0 by default.
      dxgi: Add feature level support.
      d3d11: Implement device_GetFeatureLevel().
      d3d11: Only accept shader versions supported by the feature level of the device.
      d3d11: Pass the requested feature levels to dxgi.
      d3d11/tests: Add a test for the default feature level selection.
      d3d11/tests: Test creating SM4 shaders on feature level 9.
      d3dx9: Cleanup header includes.
      d3d10core: Add feature level support.
      wined3d: Enable SM5 shaders in the GLSL backend, when possible.
      d3d11/tests: Add a feature_level parameter to init_test_context().
      d3d11/tests: Test relative addressing in constant buffers.

Michael Stefaniuc (7):
      dbghelp: Use CONTAINING_RECORD instead of reimplementing it.
      riched20: Use SetRectEmpty() instead of open coding it.
      winefile: Use SetRectEmpty() instead of open coding it.
      wined3d: Use SetRect() instead of open coding it.
      winex11: Use debugstr_a to print strings that can be NULL.
      d3drm: Use debugstr_a to print a string that can be NULL.
      dinput: Support IUnknown in the IDirectInputEffect COM object.

Miklós Máté (2):
      wined3d: Warn only once about unsupported wrap state.
      winex11: Don't create a temporary context each time X11DRV_wglBindTexImageARB is called.

Nikolay Sivov (29):
      ole32/tests: Fix tests failing on limited account.
      ole32/tests: Don't trace last error when error code is returned directly.
      ole32/tests: Fixed CoGetPSClsid() test failures when running on limited account.
      dwrite: Use correct return code on allocation failure.
      dwrite: Update to IDWriteFont3.
      include: Added IDWriteFactory3 method definitions.
      notepad: Make sure to use large enough buffer when composing window title (Coverity).
      oleview: Fix buffer length passed to Reg* functions (Coverity).
      dwrite: Update to IDWriteFontFamily1.
      dwrite: Implement IDWriteFontFamily1::GetFont().
      dwrite: Update to IDWriteFontCollection1.
      dwrite: Remove flag marking system collections.
      dwrite: Update to IDWriteFontList1.
      ole32/tests: A test to show data cache QI problems.
      avifil32: Use matching buffer length for dest string (Coverity).
      ole32: Implement CoGetCurrentLogicalThreadId().
      ole32: Implement IComThreadingInfo::GetCurrentLogicalThreadId().
      mpr: Implement WNetUseConnectionA().
      ieframe: Handle CreateView() failure in ActivateMe() (Coverity).
      xmllite: Support get/set for XmlResolver property.
      msxml3: Accept VT_UNKNOWN input for IXMLDOMSchemaCollection::add().
      comctl32/monthcal: MCM_GETRANGE does not return BOOL values.
      ole32: Use CoGetApartmentType() to implement IComThreadingInfo.
      comctl32/monthcal: Always reset range flags and date limits on MCM_SETRANGE.
      comctl32/datetime: Use MCM_GETRANGE result directly in DTM_GETRANGE.
      xmllite/writer: Implement WriteComment().
      ole32: Fix refcounting of IObjContext per-thread instance.
      ole32/tests: Some tests for IInitializeSpy.
      xmllite/writer: Implement WriteCData().

Patrick Armstrong (3):
      bcrypt: Implement MD5 algorithm and add tests.
      bcrypt: Make BCryptHashData behave more like Windows with empty input.
      bcrypt: Implement support for HMAC.

Paul Gofman (3):
      d3dx9: IsParameterUsed stub should return TRUE.
      d3dx9: Support setting texture through SetValue in effect.
      d3dx9: Fix D3DXIntersectTri function.

Pierre Schweitzer (1):
      mpr: Don't send lpRemoteName when requesting network place.

Piotr Caban (17):
      user32: Return window procedure pointer in WINPROC_AllocProc if it's not possible to allocate handle.
      user32/tests: Add initial out of window procedure slots test.
      user32: Call window procedure even if we're out of winproc handles.
      user32/tests: Show that message conversion should work on window procedures without handles.
      user32/tests: Show that messages are not converted when function pointer is passed to CallWindowProc.
      msvcrt: Add i386 _IsExceptionObjectToBeDestroyed implementation.
      msvcrt: Destroy exception object if it's no longer used when exiting catch.
      msvcrt: Handle try blocks inside current catch block in nested frame handler.
      msvcrt: Destroy exception object when frame storing it is unwound.
      msvcr80: Add _CreateFrameInfo implementation.
      msvcr80: Add _FindAndUnlinkFrame implementation.
      msvcrt: Add __CxxRegisterExceptionObject implementation.
      msvcrt: Add __DestructExceptionObject implementation.
      msvcrt: Add __CxxUnregisterExceptionObject partial implementation.
      msvcr80: Use Cxx(Un)RegisterExceptionObject helpers in i386 nested exception handler.
      msvcrt: Handle non c++ exceptions in __DestructExceptionObject.
      msvcrt: Destroy thrown c++ object before calling handler in _except_handler4_common.

Sebastian Lackner (9):
      services: Fix a typo.
      services: Hold scmdatabase lock while checking marked_for_delete.
      services: Initialize service ref_count directly in service_create.
      services: Introduce refcounting for processes.
      services: Pass a process argument to send_start_message function.
      services: Pass a process argument to send_control function.
      services: Pass a process argument to wait_for_startup function.
      setupapi: Fix parsing of inf files containing garbage at the beginning of the file.
      ieframe: Fix implementation of impl_from_ITargetFrame2.

Stefan Dösinger (10):
      wined3d: Merge surface_prepare_map_memory() into wined3d_surface_prepare().
      wined3d: Call wined3d_surface_prepare() in surface_load_sysmem().
      wined3d: Call wined3d_volume_prepare_location() in wined3d_volume_load_location().
      wined3d: Merge wined3d_surface_unmap() and wined3d_volume_unmap().
      wined3d: Merge wined3d_surface_map() and wined3d_volume_map().
      wined3d: Introduce wined3d_texture_use_pbo().
      wined3d: Merge wined3d_surface_update_desc() into wined3d_texture_update_desc().
      wined3d: Get rid of texture_ops.texture_sub_resource_add_dirty_region().
      wined3d: Get rid of state access in shader_generate_glsl_declarations().
      wined3d: Avoid storing a material pointer in struct wined3d_cs_set_material.

Vincent Povirk (3):
      mscoree: Restore previous domain whenever we set it.
      user32: Set capture earlier on popup menus.
      user32: Skip menu loop for empty popup menus.

Zhenbo Li (1):
      authz: Stub AuthzAccessCheck, AuthzFreeContext, AuthzInitializeContextFromSid, AuthzInitializeContextFromToken.

Alexandre Julliard
[email protected]