Feature: Add OpenGL 1.0 - 2.1 / ddraw / directx 7, 8, 9 webgpu acceleration via a custom virtio device - #1629
Open
speedyHKjournalist wants to merge 62 commits into
Open
Feature: Add OpenGL 1.0 - 2.1 / ddraw / directx 7, 8, 9 webgpu acceleration via a custom virtio device #1629speedyHKjournalist wants to merge 62 commits into
speedyHKjournalist wants to merge 62 commits into
Conversation
Returns the host's wall-clock time: EAX = seconds since the Unix epoch (UTC), EBX = remaining microseconds, ECX = maximum time lag in microseconds, EDX = host offset from UTC in minutes (east positive). Guests only read the RTC at boot, so a VM resumed from a saved state keeps running with the clock it was saved with. With this command a small guest agent can periodically compare its clock against the host and correct it without a reboot.
thanks @SuperMaxusa for the suggestion
When a POST or PUT request body spans multiple TCP segments (~1460 bytes each), only the first segment's body bytes were used — subsequent segments were silently dropped because this.read was cleared after the first \r\n\r\n delimiter match, and no more headers trigger re-processing. This caused "Invalid JSON" errors for any request body larger than approximately one MTU. Fix: - On the first segment: if Content-Length is present and the body is incomplete, store the partial body in this._xb with a deferred callback instead of firing fetch() immediately. - On subsequent segments: accumulate incoming data into this._xb.buf. Once Content-Length is satisfied, decode and invoke the deferred fetch. - Extract the fetch+response handling into _dispatch_fetch() to avoid duplicating it in both the normal and deferred code paths.
Addresses reviewer feedback on PR copy#1567: - Buffer incoming TCP data as raw bytes (Uint8Array) instead of text-decoding everything. Search for \r\n\r\n in binary, text-decode only the header portion. This prevents corruption of binary POST bodies and ensures the first \r\n\r\n in headers (not in body) is used as the separator. - Replace ad-hoc new TextEncoder()/new TextDecoder() with module-scoped singletons (textEncoder, textDecoder). - Refactor _dispatch_fetch into a standalone dispatch_fetch(conn, ...) helper that takes the connection explicitly, avoiding incorrect binding between the connection and adapter objects. - Add comment noting that Transfer-Encoding: chunked is unsupported. - Add unit tests (tests/devices/fetch_network_post.js): * Small POST body in one segment * Large POST body split across 3 segments * Binary body containing embedded CRLFCRLF bytes * GET request (no body) * Headers split across 2 segments
Add a POST handler to the test server that echoes the received body length, and a test case that POSTs 3000 bytes (> ~1460 byte MTU) from the buildroot guest via curl + dd. Verifies the full body reaches the server after the binary-safe buffering fix.
Replace generic indexOfBytes helper with inline function that directly checks bytes against CR=0x0D and LF=0x0A values. Remove pre-encoded CRLFCRLF separator — \r\n\r\n is always 4 bytes, so use the literal length. Per @copy review.
Per @copy review: project doesn't use underscore prefix.
Per @SuperMaxusa review on copy#1567 — fetch_url was constructed twice (in buffering branch and normal path). Hoist to before the if/else.
Per @copy review — revert to inline new TextEncoder()/TextDecoder() calls to minimize diff.
…h rule - findCrLfCrLf -> find_crlfcrlf - headerBytes, bodyBytes, headerText, headerLines -> snake_case - textEncoder, bigBody, hdrBytes, binBody -> snake_case (tests)
CI was failing with Permission denied when running via make devices-test.
… input after mouse movement)
Author
|
I will upload windows xp and 3dmark image for testing asap, still need to verify 3dmark 03 and 05. |
Author
|
Hi @copy , as you can see from the 3DMark 06 CPU result, it scores only 179 compared to old Althon 64 700 - 1000. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Architecture:
Tested games and applications include:
Theoretically this approach should also work for win9x if v86gl.sys and others dlls are recompiled.
Not sure how this PR can be merged ...