This is the last thing needed to support non-constant offset dereferences in SM4.
It allows to perform relative addressing on temps.
Besides this, I have additional patches for relative addressing on uniforms, and input and output semantics, but these may not be useful for now, since we copy all these variables into temps instead of using them directly.
--
v3: vkd3d-shader/tpf: Support relative addressing for indexable temps in SM4.
vkd3d-shader/tpf: Move sm4_register_from_node() up.
vkd3d-shader/tpf: Support writing relative addressing indexes.
vkd3d-shader/tpf: Write register index addressing.
vkd3d-shader/tpf: Encode dst and src registers using the same function.
tests: Test relative addressing.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/435
This is the last thing needed to support non-constant offset dereferences in SM4.
It allows to perform relative addressing on temps.
Besides this, I have additional patches for relative addressing on uniforms, and input and output semantics, but these may not be useful for now, since we copy all these variables into temps instead of using them directly.
--
v2: vkd3d-shader/tpf: Support relative addressing for indexable temps in SM4.
vkd3d-shader/tpf: Move sm4_register_from_node() up.
vkd3d-shader/tpf: Support writing relative addressing indexes.
vkd3d-shader/tpf: Write register index addressing.
vkd3d-shader/tpf: Encode dst and src registers using the same function.
tests: Test relative addressing.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/435
On Fri Nov 3 00:13:06 2023 +0000, Etaash Mathamsetty wrote:
> yeah the ms edge installer doesn't work yet, this is just a stub fixing
> it partially and letting it progress further.
Thank you for confirming. Do you know any temporary workarounds by any chance? After 30 minutes the intaller eventually gave up with the error: `Installation Failed with error code Redist_MSWebView2_Standalone:-2147219196`.
I don't think that the developers would agree to make it opt-in neither, it seems to be an integral part of their application now.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3724#note_50745
When changing some sprintf calls to snprintf, I realized there are many cases that would be simplified by using asprintf instead. It's been present in glibc since the 90s, the BSDs/macOS for almost as long, and Solaris since 'Solaris 10 8/2011'.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4261
On Thu Nov 2 18:24:28 2023 +0000, Zebediah Figura wrote:
> It looks like this needs a rebase?
Sorry for submitting code that doesn't compile. This is going to require some more invasive changes. I will fix it tonight.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4122#note_50687
Evan Tang reported that new fixmes appeared on the shader_runner when
running some of his tests after
f50d0ae2cbc5ee2a26fedd7b8aac2def62decd6c.
vkd3d:652593:fixme:shader_sm4_read_src_param Unhandled mask 0x4.
The change to blame seems to be this added line in
sm4_src_from_constant_value().
+ src->swizzle = VKD3D_SHADER_NO_SWIZZLE;
On tpf binaries the last 12 bytes of each src register in an instruction
specify the swizzle, and there are 5 possible combinations:
Dimension NONE
-------- 00
Dimension SCALAR
-------- 01
Dimension VEC4, with a 4 bit writemask:
---- xxxx 00 01
Dimension VEC4, with an 8 bit swizzle:
xx xx xx xx 01 01
Dimension VEC4, with a 2bit scalar dimension number:
------ xx 10 01
So far, we have only seen src registers use 4 bit writemasks in a
single case: for vec4 constants, and it is always zero.
So we expect this:
---- 0000 00 01
Now, I probably wanted to initialize src->swizzle to zero when writing
constants, but VKD3D_SHADER_NO_SWIZZLE is not zero, it is actually the
default swizzle:
11 10 01 00
And the last 4 bits (0x4) get written in the mask part, which causes
the reader to complain.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/438
--
v6: vkd3d-shader/ir: Validate the index of a TEMP register.
vkd3d-shader/ir: Validate the DCL_TEMPS instruction.
vkd3d-shader/ir: Validate the register index count.
vkd3d-shader/ir: Validate the register dimension.
vkd3d-shader/ir: Validate the register data type.
vkd3d-shader/ir: Validate the register precision.
vkd3d-shader/dxil: Use vsir_register_init() to initialize registers.
vkd3d-shader: Deduplicate profile version comparison functions.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/432
A few recent changes broke the macOS build. Unfortunately nobody noticed, because the macOS CI job always fails. :-(
However, we can still fix that. I'm not sure that the last commit is the best approach, would like to have comments from Henri.
--
v6: include: Import vkd3d_d3dcompiler.h instead of redefining D3D_BLOB_PART.
ci: Make the MoltenVK logging less verbose.
vkd3d-shader: Explicitly cast vkd3d_shader_global_flags to uint64_t.
ci: Allow the artifact copy to fail.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/423
--
v3: vkd3d-shader/spirv: No longer handle builtin array size mismatch in spirv_compiler_emit_input().
vkd3d-shader/spirv: Remove handling of VKD3DSPR_OUTCONTROLPOINT.
vkd3d-shader/ir: Check for vocp usage during IR normalization.
vkd3d-shader/ir: Pass a vkd3d_shader_parser to instruction_array_normalise_io_registers().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/421
--
v5: vkd3d-shader/dxil: Implement the DXIL BINOP instruction.
vkd3d-shader/spirv: Support VKD3D_DATA_UINT in spirv_compiler_emit_neg().
vkd3d-shader/spirv: Handle the UMUL instruction.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/409
--
v4: vkd3d-shader/dxil: Implement the DXIL BINOP instruction.
vkd3d-shader/spirv: Support VKD3D_DATA_UINT in spirv_compiler_emit_neg().
vkd3d-shader/spirv: Handle the UMUL instruction.
vkd3d-shader/spirv: Introduce an IDIV instruction.
vkd3d-shader/spirv: Introduce an FREM instruction.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/409
It can take a while before a new eventlog file is created on Windows. Rather than
waiting for it I chose to remove this test since it seems doubtful that any application
will need to access the file directly.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4260
Implements asin, acos, atan, and atan2.
Also includes some tests in a new test file.
One possible problem here is that I'm not sure how to test what Microsoft's atan and atan2 outputs are in boundary cases like atan2(1, 0). I've made the test suites adhere with the calculator program I've been using (Qalculate, which I assume is using libc's atan2).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55154
--
v3: vkd3d-shader/hlsl: Implement atan2.
vkd3d-shader/hlsl: Implement atan.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/364
This is used by google-chrome.
I added this hoping to fix an issue, but this was unrelated to input pane.
Not having it doesn't seem detrimental, although since I already implemented this I figured it would be a waste to throw it away.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4251
This is used by google-chrome.
I added this hoping to fix an issue, but this was unrelated to input pane.
Not having it doesn't seem detrimental, although since I already implemented this I figured it would be a waste to throw it away.
--
v2: windows.ui: Add stubs for InputPane class
https://gitlab.winehq.org/wine/wine/-/merge_requests/4251
Goes atop MR 409. The last five commits belong to this MR.
--
v2: vkd3d-shader/dxil: Implement the DXIL CAST instruction.
vkd3d-shader/spirv: Handle unsigned result in spirv_compiler_emit_ftoi().
vkd3d-shader/spirv: Introduce integer width cast instructions.
vkd3d-shader/spirv: Support bool type in spirv_compiler_emit_alu_instruction().
vkd3d-shader/spirv: Support bitcast in spirv_compiler_emit_load_ssa_reg().
vkd3d-shader/dxil: Implement the DXIL BINOP instruction.
vkd3d-shader/spirv: Support VKD3D_DATA_UINT in spirv_compiler_emit_neg().
vkd3d-shader/spirv: Handle the UMUL instruction.
vkd3d-shader/spirv: Introduce an IDIV instruction.
vkd3d-shader/spirv: Introduce an FREM instruction.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/436
--
v2: vkd3d-shader/spirv: No longer handle builtin array size mismatch in spirv_compiler_emit_input().
vkd3d-shader/spirv: Remove handling of VKD3DSPR_OUTCONTROLPOINT.
vkd3d-shader/ir: Check for vocp usage during IR normalization.
vkd3d-shader/ir: Pass a vkd3d_shader_parser to instruction_array_normalise_io_registers().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/421
--
v2: vkd3d-shader/hlsl: Consistently use HLSL allocation functions.
vkd3d-shader/hlsl: Sort keywords.
vkd3d-shader/hlsl: Remove C++ comment lexing.
vkd3d-shader/hlsl: Remove some tokens from the lexer.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/426
Forward enum declarations are generally fine with compilers and we use them a lot in winrt headers. However, it causes warnings on clang in MSVC mode. I guess it's handled differently there because, just like the actual MSVC, enums may have different type (signed or unsigned int) depending on its values. Still, other than emitting the warning, the compiler handles it just fine.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4245
Based off !306, so leaving it as a draft until that's merged
We don't seem to print anything if a test is skipped due to not meeting its requirements, should we be?
--
v2: vkd3d-shader/spirv: Add optimization pass to reduce scope of fsi begin/end in ROV translation.
vkd3d: Enable EXT_fragment_shader_interlock.
vkd3d-shader/spirv: Compile ROV to fragment shader interlock.
vkd3d-shader/hlsl: Parse ROV types.
vkd3d-shader/hlsl: Support SV_PrimitiveID in pixel shaders.
tests: Add ROV test.
tests: Support specifying required spirv extensions.
tests: Support testing for integer pixel data.
tests: Replicate init data across resources.
vkd3d-shader: Add EXT_fragment_shader_interlock extension.
vkd3d-shader/spirv: Handle thread group UAV barriers.
vkd3d-shader/spirv: Include Uniform in the memory semantics for UAV barriers.
vkd3d-shader/spirv: Handle globally coherent UAVs.
vkd3d-shader: Introduce a UAV_GLOBALLY_COHERENT descriptor info flag.
vkd3d-shader/d3d-asm: Trace the RASTERISER_ORDERED_VIEW UAV flag.
vkd3d-shader/tpf: Fix extraction of the UAV declaration flags.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/416
--
v2: mshtml: Keep ref from the OmHistory to the inner window.
mshtml: Keep ref from LocalStorage and SessionStorage to the inner window.
mshtml: Keep ref from the XMLHttpRequestFactory to the inner window.
mshtml: Keep ref from the OptionElementFactory to the inner window.
mshtml: Keep ref from the ImageElementFactory to the inner window.
mshtml/tests: Test parent window links after navigation.
mshtml: Properly traverse document nodes.
mshtml: Keep ref from the document node to the inner window.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4178
I see current Chrome is hitting this.
--
v2: vkd3d-shader: Accept 'loop' attribute, on loops.
vkd3d-shader: Check loop [unroll] attribute for conflict with other attributes.
tests: Add some tests for loop attributes.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/431
The resource could be destructed before the command list left open
is executed; instead, we immediately perform the transition.
--
v2: tests: Immediately transition buffers after creation in the shader runner.
tests: Immediately transition textures after creation in the shader runner.
tests: Immediately transition resources after readback in the shader runner.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/425
--
v4: tests: Add a stress tester option to print the compilation messages.
tests: Add a stress tester option to only print failures.
tests: Add HLSL support to the stress tester.
tests: Introduce a stress tester for vkd3d-shader.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/424
--
v9: user32: Pass real argument to NtUserGetClassName in RealGetWindowClass{A/W}.
win32u: Add support for retrieving real window class ID across processes.
user32: Set real window class ID for user32 static controls.
win32u/tests: Add a test for real window class name retrieval.
comctl32/tests: Add tests for RealGetWindowClass.
user32/tests: Add tests for RealGetWindowClass.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4092
--
v8: user32: Pass real argument to NtUserGetClassName in RealGetWindowClass{A/W}.
win32u: Add support for retrieving real window class ID across processes.
user32: Set real window class ID for user32 static controls.
win32u/tests: Add a test for real window class name retrieval.
comctl32/tests: Add tests for RealGetWindowClass.
user32/tests: Add tests for RealGetWindowClass.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4092
Resolves https://bugs.winehq.org/show_bug.cgi?id=9127 . (Some of the named programs in that issue may require additional currently-missing functionality, I didn't check; but if so, that's separate issues.)
Tested with
- winetest on Windows 7
- winetest on Windows 10
- winetest in Wine, of course
- microkiri https://bugs.winehq.org/show_bug.cgi?id=9127#c102
- Wagamama High Spec Trial Edition https://wagahigh.com/download_trial.php#normal (ダウンロード means download)
- Ninki Seiyuu no Tsukurikata Trial https://archive.org/details/sayou_trial
(WMV files in microkiri and Wagamama don't work, but that's separate issues. Also, they need the LC_ALL=ja_JP env, or they throw various goofy errors.)
--
v22: quartz/tests: Add tests for CLSID_CMpegVideoCodec.
quartz/tests: Add tests for new CLSID_MPEG1Splitter functionality.
winegstreamer: Implement CLSID_CMpegVideoCodec.
winegstreamer: Add program stream and video output support to CLSID_MPEG1Splitter.
winegstreamer: Add WG_MAJOR_TYPE_VIDEO_MPEG1 media type.
winegstreamer: Use the new output_compressed property instead of mpegaudioparse in MPEG splitter.
winegstreamer: Add output_compressed parameter to wg_parser_create().
winegstreamer: Implement parts of IAMStreamSelect::Info in CLSID_MPEG1Splitter.
winegstreamer: Implement IAMStreamSelect::Count in CLSID_MPEG1Splitter.
winegstreamer: Improve and clean up some debug logs.
winegstreamer: Include the framerate when converting video format to GstCaps.
winegstreamer: Seek to end of stream instead of to stream duration.
winegstreamer: Clamp QoS events to stay inside the stream's running time.
winegstreamer: Don't read format from unparsed MPEG audio.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938
This is the last thing needed to support non-constant offset dereferences in SM4.
It allows to perform relative addressing on temps.
Besides this, I have additional patches for relative addressing on uniforms, and input and output semantics, but these may not be useful for now, since we copy all these variables into temps instead of using them directly.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/435