https://bugs.winehq.org/show_bug.cgi?id=42504
Bug ID: 42504 Summary: Computemark 2.1 is almost working now with Wine 2.2.. Product: Wine Version: 2.2 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: rtfss1@gmail.com Distribution: ---
Created attachment 57382 --> https://bugs.winehq.org/attachment.cgi?id=57382 fixme output
Hi, Computemark 2.1 uses compute shaders and seems Wine 2.2 has gained a lot of compute shader support.. So using either Wine 2.2 or Wine Staging 2.2 program launches and tests seems to run altough we get black screen while the test runs.. seeing wine output we see basically this errors using Nvidia 378.13 on a GTX970:
1)Nvidia GLSL Compiler errors: fixme:d3d_shader:print_glsl_info_log 0(31) : error C1101: ambiguous overloaded function reference "texture3DLod(sampler3D, vec3, float)" fixme:d3d_shader:print_glsl_info_log (0) : fpf gpf vpf tpf hpf gp4 fp50 vp50 cp50 gp50 uvec4 texture3DLod(usampler3D, vec3, float) fixme:d3d_shader:print_glsl_info_log (0) : fpf gpf vpf tpf hpf gp4 fp50 vp50 cp50 gp50 ivec4 texture3DLod(isampler3D, vec3, float) fixme:d3d_shader:print_glsl_info_log (0) : vec4 texture3DLod(sampler3D, vec3, float)
2)lots of repeated fixme like: fixme:d3d11:d3d11_immediate_context_CSSetShaderResources iface 0x15c18c, start_slot 0, view_count 2, views 0x33fd10 stub! fixme:d3d11:d3d11_immediate_context_CSSetUnorderedAccessViews Ignoring initial counts.
So seems if texture3DLod is fixed and maybe _CSSetShaderResources stub implemented maybe we will have ComputeMark more or less working..
3)also when DXBC parser can't parse some DX bytecode: fixme:d3d11:skip_dword_unknown Skipping 4 unknown DWORDs: fixme:d3d11:skip_dword_unknown 0xab2742ec fixme:d3d11:skip_dword_unknown 0x2f3269de fixme:d3d11:skip_dword_unknown 0x610001ec fixme:d3d11:skip_dword_unknown 0xf81b8396 fixme:d3d11:skip_dword_unknown Skipping 1 unknown DWORDs: fixme:d3d11:skip_dword_unknown 0x00000001 fixme:d3d11:shdr_handler Unhandled chunk "RDEF". fixme:d3d11:skip_dword_unknown Skipping 1 unknown DWORDs: fixme:d3d11:skip_dword_unknown 0x00000008 fixme:d3d11:skip_dword_unknown Skipping 1 unknown DWORDs: fixme:d3d11:skip_dword_unknown 0x00000008 fixme:d3d11:shdr_handler Unhandled chunk "STAT". fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x80000142. fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543. fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x80000142. fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
I attach a fixme log but for example a GLSL compute shader thant Nvidia can't compile is: fixme:d3d_shader:shader_glsl_validate_link Program 2 link status invalid. fixme:d3d_shader:shader_glsl_dump_program_source Shader 1: fixme:d3d_shader:shader_glsl_dump_program_source GL_SHADER_TYPE: GL_COMPUTE_SHADER. fixme:d3d_shader:shader_glsl_dump_program_source GL_COMPILE_STATUS: 0. fixme:d3d_shader:shader_glsl_dump_program_source fixme:d3d_shader:shader_glsl_dump_program_source #version 150 fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_gpu_shader5 : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_shader_bit_encoding : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_shader_image_load_store : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_shader_image_size : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_shading_language_packing : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_texture_cube_map_array : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_texture_query_levels : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_uniform_buffer_object : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_EXT_gpu_shader4 : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_EXT_texture_array : enable fixme:d3d_shader:shader_glsl_dump_program_source #extension GL_ARB_compute_shader : enable fixme:d3d_shader:shader_glsl_dump_program_source layout(std140) uniform block_cs_cb0 { vec4 cs_cb0[1]; }; fixme:d3d_shader:shader_glsl_dump_program_source uniform sampler3D cs_sampler0; fixme:d3d_shader:shader_glsl_dump_program_source uniform sampler3D cs_sampler1; fixme:d3d_shader:shader_glsl_dump_program_source writeonly uniform image3D cs_image0; fixme:d3d_shader:shader_glsl_dump_program_source vec4 R0; fixme:d3d_shader:shader_glsl_dump_program_source vec4 R1; fixme:d3d_shader:shader_glsl_dump_program_source vec4 tmp0; fixme:d3d_shader:shader_glsl_dump_program_source vec4 tmp1; fixme:d3d_shader:shader_glsl_dump_program_source layout(local_size_x = 8, local_size_y = 4, local_size_z = 4) in; fixme:d3d_shader:shader_glsl_dump_program_source void main() fixme:d3d_shader:shader_glsl_dump_program_source { fixme:d3d_shader:shader_glsl_dump_program_source R0.xyz = (ivec3(gl_GlobalInvocationID).xyz); fixme:d3d_shader:shader_glsl_dump_program_source R0.w = (uintBitsToFloat(0u)); fixme:d3d_shader:shader_glsl_dump_program_source R0.xyz = (texelFetch(cs_sampler0, floatBitsToInt(R0).xyz, floatBitsToInt(R0).w).xyz); fixme:d3d_shader:shader_glsl_dump_program_source R1.xyz = (vec3(ivec3(gl_GlobalInvocationID).xyz)); fixme:d3d_shader:shader_glsl_dump_program_source R0.xyz = (-R0.xyz + R1.xyz); fixme:d3d_shader:shader_glsl_dump_program_source R0.xyz = (R0.xyz + uintBitsToFloat(uvec4(0x3f000000u, 0x3f000000u, 0x3f000000u, 0u)).xyz); fixme:d3d_shader:shader_glsl_dump_program_source R0.xyz = (R0.xyz / cs_cb0[0].xyz); fixme:d3d_shader:shader_glsl_dump_program_source R0.xyzw = (texture3DLod(cs_sampler1, R0.xyz, uintBitsToFloat(0u)).xyzw); fixme:d3d_shader:shader_glsl_dump_program_source imageStore(cs_image0, ivec3(gl_GlobalInvocationID).xyz, R0.xyzw); fixme:d3d_shader:shader_glsl_dump_program_source return; fixme:d3d_shader:shader_glsl_dump_program_source } fixme:d3d_shader:shader_glsl_dump_program_source
https://bugs.winehq.org/show_bug.cgi?id=42504
--- Comment #1 from Austin English austinenglish@gmail.com --- It's not clear what the problem is. FIXMEs are not bugs, what's the actual problem?
https://bugs.winehq.org/show_bug.cgi?id=42504
--- Comment #2 from Austin English austinenglish@gmail.com --- (In reply to Austin English from comment #1)
It's not clear what the problem is. FIXMEs are not bugs, what's the actual problem?
Sorry, black screen while the test runs, right? If so, please put that in the summary. 'almost working now' isn't a proper bug description.
https://bugs.winehq.org/show_bug.cgi?id=42504
oscarbg rtfss1@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Computemark 2.1 is almost |Computemark 2.1 runs with |working now with Wine 2.2.. |Wine 2.2 but black | |benchmark window..
https://bugs.winehq.org/show_bug.cgi?id=42504
--- Comment #3 from oscarbg rtfss1@gmail.com --- as said Computemark GUI launches but when selecting to running any benchmark like Fluid3D launches the window that remains black altough doesn't crash.. seeing FIXMES seems fatal error is some generated GLSL compute shader doesn't compile good because of a texture3DLod function.. also CSSetShaderResources D3D11 isn't currently implemented and this function should be implemented for the benchmark to run..
https://bugs.winehq.org/show_bug.cgi?id=42504
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |joseph.kucia@gmail.com Component|-unknown |directx-d3d
https://bugs.winehq.org/show_bug.cgi?id=42504
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |b1b880fc75932c890ea07031179 | |3111e738ebf52 Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #4 from Józef Kucia joseph.kucia@gmail.com --- Computemark should work after commit b1b880fc75932c890ea070311793111e738ebf52.
https://bugs.winehq.org/show_bug.cgi?id=42504
--- Comment #5 from oscarbg rtfss1@gmail.com --- yes it works now on Nvidia..
Tested on recent Mesa 17.1-dev from Padoka PPA on Intel HD530 which exposes OpenGL 4.5.. Wine fails but prints: fixme:dxgi:dxgi_check_feature_level_support Ignoring adapter type. fixme:winediag:dxgi_check_feature_level_support None of the requested D3D feature levels is supported on this GPU with the current shader backend.
Is because Mesa implements core profile contexts if requesting GL>=4.x? Any hint on how to run Wine D3D11 programs on Mesa drivers or needs some Wine patches?
https://bugs.winehq.org/show_bug.cgi?id=42504
--- Comment #6 from Józef Kucia joseph.kucia@gmail.com --- (In reply to oscarbg from comment #5)
Is because Mesa implements core profile contexts if requesting GL>=4.x? Any hint on how to run Wine D3D11 programs on Mesa drivers or needs some Wine patches?
You have to see MaxVersionGL to 0x30002 or higher OpenGL version.
See bug 38648 and https://wiki.winehq.org/Useful_Registry_Keys
https://bugs.winehq.org/show_bug.cgi?id=42504
--- Comment #7 from oscarbg rtfss1@gmail.com --- Thanks for fast response.. I had found this guide "How to run DX11 games in wine with opensource drivers (Mesa)"-> http://www.gearsongallium.com/?p=2875 and didn't worked..
but by settting MaxVersionGL I can confirm Computemark 2.1 works with Intel HD 530 and recent Mesa 17.1dev also!! Many thanks..
PD:Just thinking how this program can't work on Apple Macs as they support only up to OGL4.1 and that doesn't support GL_ARB_compute_shader and image_load_store extension for UAV.. Have Wine developers thought about working on a D3D11->Metal translation layer on Mac that would allow programs like this to run also on Mac? Or will D3D10/11 Wine support will remain via OpenGL 4.x for a long time?
https://bugs.winehq.org/show_bug.cgi?id=42504
--- Comment #8 from Henri Verbeet hverbeet@gmail.com --- (In reply to oscarbg from comment #7)
Thanks for fast response.. I had found this guide "How to run DX11 games in wine with opensource drivers (Mesa)"-> http://www.gearsongallium.com/?p=2875 and didn't worked..
A lot of people seem to find that page, which is a bit unfortunate, since it's not entirely accurate.
PD:Just thinking how this program can't work on Apple Macs as they support only up to OGL4.1 and that doesn't support GL_ARB_compute_shader and image_load_store extension for UAV.. Have Wine developers thought about working on a D3D11->Metal translation layer on Mac that would allow programs like this to run also on Mac? Or will D3D10/11 Wine support will remain via OpenGL 4.x for a long time?
We've certainly thought about the issue. I can expand on that if needed, but I think Metal support in wined3d would be undesirable. I'd much rather see an OpenGL implementation on top of Metal, possibly as a library external to Wine. There are considerations that make doing that well not necessarily easy, but on the other hand, Apple's current OpenGL implementation doesn't set a very high bar to surpass.
https://bugs.winehq.org/show_bug.cgi?id=42504
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.3.