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