mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 18:13:23 +09:00
The create window could not collect its deferred answers. The previous commit
diagnosed that as the reply pool being 8 slots deep against 55,903 replies in one
frame, and left a no-reply bit as the way out. This lands that bit, measures it on
the device, and reports that the diagnosis was half wrong.
WHAT LANDED. ClientSession::EmitAndWaitTails takes a second question beside
wantReply: willReadReply. They are not the same question and the window is the case
that separates them - it emits with wantReply=false and READS the answer later, so
its records must still be answered. kRecNoReply (RingRecordFlags bit 5, which
aliases kOptional in the call-flag space; the flag-space asserts were extended and
the alias named) is stamped when willReadReply is false, and the decoder skips
PostReply while keeping every acceptance counter - "nobody reads the answer" is not
"nothing happened". The two illegal combinations are Fatal by name.
Three call sites say it: SetTextureParams for a confirmed object, the respecify
row's fire-and-forget half, and sub-data where MGPipeSubDataWantsItsReply decides.
MEASURED ON THE DEVICE (aikjs4s8cys8ba7l, rebuilt APK + client, both halves new):
server: skipped=50,001 answered=4,521 (a frame's replies: 55,903 -> 4,543)
client: Reply frames received seen=4,501, latest seq=97,181
frame-sent: identical per op, records untouched
create row: by_op 2 = 9,070 (was 4,536) - because the drain's blocking take is
now counted, so the row's number stays honest instead of reading as
"create stopped waiting" while the waiting merely moved
AND THE WINDOW STILL READ BACK NOTHING: readfail 8,951 -> 8,872, i.e. -0.9%.
THE REAL CAUSE, from the miss probe:
P12miss n=1 want=310 replySeq=1504 ring=[1175..1504]
P12miss n=9001 want=310 replySeq=102915 ring=[102866..102915]
want=310 every time. The drain is STRICTLY FIFO and a failed read has no way out -
it retries the same head for ever. Any reply buffer is bounded by design (8 pool
slots, or the 8-frame ring the stream link now keeps), so with 4,536 deferred
answers at least one is overwritten before it is read, and that one wedges the
window permanently. Cutting the churn by two orders of magnitude does not help: it
turns a certainty into a certainty. That is the constraint, not the depth.
THE FIX IS NAMED AND NOT TAKEN (the goal this work ran under stops here on purpose).
On a failed read of the head, abandon it: MGPipeNoteHandleUnpublished +
NoteCreateSuspect + pop - the DECLINE path reused for "unknown". The window then
self-heals through the blocking path and the object merely gets slower. It needs its
own gate: a failed read must let the window ADVANCE.
Gates, all green (172 + 13 + 22 + 103):
PipeWireCodecTest.TheNoReplyBitSkipsTheAnswerAndKeepsTheAcceptanceRecord - the skip,
the kept tally, the answered/skipped split, and the negative control that a record
WITHOUT the bit is still answered (a server that stopped answering everything
would otherwise pass)
RemoteClientControls.ACreateWindowDefersTheAnswersAndTheWindowOffDoesNot - now also
asserts the answers CAME BACK (answers_taken=11, outstanding=1, fallbacks=0 against
12 records). RED-ONCE PROVED: giving the window's creates the literal
"fire-and-forget => skip" predicate makes this case fail.
RingTest - the sixth and last flag alias, and the hand-written exhaustiveness list
extended (with a note that it is only as exhaustive as that list).
Server side: AnsweredRecords()/SkippedAnswers() - the number that made this
debuggable, since a wire change whose effect is invisible is undebuggable.
Client-first is safe: an old server ignores bit 5 and replies as before, so the two
cross-version directions degrade to today's behaviour - this is "both ends must
upgrade to take EFFECT", not "to avoid breaking". Hit that in practice first.
1256 lines
38 KiB
C++
1256 lines
38 KiB
C++
// MobileGL - MobileGL/MG_Protocol/generated_wire_dispatch.h
|
|
// Copyright (c) 2025-2026 MobileGL-Dev
|
|
// Licensed under the GNU Lesser General Public License v3.0:
|
|
// SPDX-License-Identifier: LGPL-3.0-only
|
|
// End of Source File Header
|
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include "generated_dispatch.h"
|
|
|
|
// GENERATED by scripts/generate_wire_dispatch.py
|
|
|
|
namespace MobileGL::Protocol::Wire {
|
|
|
|
inline constexpr uint32_t kWireDispatchTotal = 1396u;
|
|
inline constexpr uint32_t kWireDispatchSupported = 1188u;
|
|
inline constexpr uint32_t kWireDispatchUnsupported = 208u;
|
|
|
|
inline bool WireDispatchIsSupported(uint32_t opcode) {
|
|
switch (opcode) {
|
|
case 1: return true;
|
|
case 2: return true;
|
|
case 3: return true;
|
|
case 4: return true;
|
|
case 5: return true;
|
|
case 6: return true;
|
|
case 7: return true;
|
|
case 8: return true;
|
|
case 9: return true;
|
|
case 10: return true;
|
|
case 11: return true;
|
|
case 12: return true;
|
|
case 13: return true;
|
|
case 14: return true;
|
|
case 15: return true;
|
|
case 16: return true;
|
|
case 17: return true;
|
|
case 18: return true;
|
|
case 19: return true;
|
|
case 20: return true;
|
|
case 23: return true;
|
|
case 24: return true;
|
|
case 25: return true;
|
|
case 26: return true;
|
|
case 27: return true;
|
|
case 29: return true;
|
|
case 30: return true;
|
|
case 31: return true;
|
|
case 33: return true;
|
|
case 34: return true;
|
|
case 35: return true;
|
|
case 36: return true;
|
|
case 38: return true;
|
|
case 39: return true;
|
|
case 40: return true;
|
|
case 41: return true;
|
|
case 44: return true;
|
|
case 45: return true;
|
|
case 46: return true;
|
|
case 47: return true;
|
|
case 48: return true;
|
|
case 50: return true;
|
|
case 51: return true;
|
|
case 52: return true;
|
|
case 53: return true;
|
|
case 54: return true;
|
|
case 55: return true;
|
|
case 56: return true;
|
|
case 57: return true;
|
|
case 58: return true;
|
|
case 59: return true;
|
|
case 60: return true;
|
|
case 61: return true;
|
|
case 62: return true;
|
|
case 64: return true;
|
|
case 65: return true;
|
|
case 66: return true;
|
|
case 68: return true;
|
|
case 69: return true;
|
|
case 70: return true;
|
|
case 71: return true;
|
|
case 72: return true;
|
|
case 74: return true;
|
|
case 75: return true;
|
|
case 76: return true;
|
|
case 77: return true;
|
|
case 78: return true;
|
|
case 79: return true;
|
|
case 80: return true;
|
|
case 81: return true;
|
|
case 82: return true;
|
|
case 86: return true;
|
|
case 87: return true;
|
|
case 88: return true;
|
|
case 89: return true;
|
|
case 90: return true;
|
|
case 91: return true;
|
|
case 92: return true;
|
|
case 93: return true;
|
|
case 94: return true;
|
|
case 95: return true;
|
|
case 96: return true;
|
|
case 97: return true;
|
|
case 98: return true;
|
|
case 99: return true;
|
|
case 100: return true;
|
|
case 101: return true;
|
|
case 102: return true;
|
|
case 103: return true;
|
|
case 104: return true;
|
|
case 105: return true;
|
|
case 106: return true;
|
|
case 107: return true;
|
|
case 108: return true;
|
|
case 109: return true;
|
|
case 110: return true;
|
|
case 112: return true;
|
|
case 113: return true;
|
|
case 114: return true;
|
|
case 115: return true;
|
|
case 116: return true;
|
|
case 117: return true;
|
|
case 118: return true;
|
|
case 119: return true;
|
|
case 120: return true;
|
|
case 121: return true;
|
|
case 122: return true;
|
|
case 123: return true;
|
|
case 124: return true;
|
|
case 125: return true;
|
|
case 126: return true;
|
|
case 127: return true;
|
|
case 128: return true;
|
|
case 129: return true;
|
|
case 130: return true;
|
|
case 131: return true;
|
|
case 132: return true;
|
|
case 133: return true;
|
|
case 134: return true;
|
|
case 135: return true;
|
|
case 136: return true;
|
|
case 137: return true;
|
|
case 138: return true;
|
|
case 139: return true;
|
|
case 140: return true;
|
|
case 141: return true;
|
|
case 142: return true;
|
|
case 143: return true;
|
|
case 144: return true;
|
|
case 145: return true;
|
|
case 147: return true;
|
|
case 148: return true;
|
|
case 149: return true;
|
|
case 150: return true;
|
|
case 151: return true;
|
|
case 152: return true;
|
|
case 153: return true;
|
|
case 154: return true;
|
|
case 155: return true;
|
|
case 156: return true;
|
|
case 157: return true;
|
|
case 158: return true;
|
|
case 159: return true;
|
|
case 160: return true;
|
|
case 161: return true;
|
|
case 162: return true;
|
|
case 163: return true;
|
|
case 164: return true;
|
|
case 165: return true;
|
|
case 166: return true;
|
|
case 167: return true;
|
|
case 168: return true;
|
|
case 169: return true;
|
|
case 170: return true;
|
|
case 171: return true;
|
|
case 172: return true;
|
|
case 173: return true;
|
|
case 174: return true;
|
|
case 175: return true;
|
|
case 176: return true;
|
|
case 177: return true;
|
|
case 178: return true;
|
|
case 179: return true;
|
|
case 180: return true;
|
|
case 181: return true;
|
|
case 182: return true;
|
|
case 183: return true;
|
|
case 184: return true;
|
|
case 185: return true;
|
|
case 186: return true;
|
|
case 187: return true;
|
|
case 188: return true;
|
|
case 189: return true;
|
|
case 190: return true;
|
|
case 191: return true;
|
|
case 192: return true;
|
|
case 193: return true;
|
|
case 194: return true;
|
|
case 195: return true;
|
|
case 196: return true;
|
|
case 197: return true;
|
|
case 198: return true;
|
|
case 199: return true;
|
|
case 200: return true;
|
|
case 201: return true;
|
|
case 203: return true;
|
|
case 204: return true;
|
|
case 205: return true;
|
|
case 206: return true;
|
|
case 207: return true;
|
|
case 208: return true;
|
|
case 210: return true;
|
|
case 212: return true;
|
|
case 213: return true;
|
|
case 214: return true;
|
|
case 215: return true;
|
|
case 218: return true;
|
|
case 220: return true;
|
|
case 222: return true;
|
|
case 223: return true;
|
|
case 224: return true;
|
|
case 226: return true;
|
|
case 227: return true;
|
|
case 228: return true;
|
|
case 229: return true;
|
|
case 230: return true;
|
|
case 231: return true;
|
|
case 232: return true;
|
|
case 233: return true;
|
|
case 235: return true;
|
|
case 236: return true;
|
|
case 237: return true;
|
|
case 238: return true;
|
|
case 239: return true;
|
|
case 240: return true;
|
|
case 241: return true;
|
|
case 242: return true;
|
|
case 243: return true;
|
|
case 244: return true;
|
|
case 245: return true;
|
|
case 246: return true;
|
|
case 247: return true;
|
|
case 248: return true;
|
|
case 249: return true;
|
|
case 250: return true;
|
|
case 251: return true;
|
|
case 252: return true;
|
|
case 253: return true;
|
|
case 254: return true;
|
|
case 255: return true;
|
|
case 256: return true;
|
|
case 257: return true;
|
|
case 258: return true;
|
|
case 259: return true;
|
|
case 260: return true;
|
|
case 261: return true;
|
|
case 262: return true;
|
|
case 263: return true;
|
|
case 264: return true;
|
|
case 265: return true;
|
|
case 266: return true;
|
|
case 267: return true;
|
|
case 269: return true;
|
|
case 271: return true;
|
|
case 272: return true;
|
|
case 273: return true;
|
|
case 275: return true;
|
|
case 277: return true;
|
|
case 278: return true;
|
|
case 279: return true;
|
|
case 280: return true;
|
|
case 282: return true;
|
|
case 283: return true;
|
|
case 284: return true;
|
|
case 288: return true;
|
|
case 289: return true;
|
|
case 290: return true;
|
|
case 291: return true;
|
|
case 292: return true;
|
|
case 293: return true;
|
|
case 294: return true;
|
|
case 295: return true;
|
|
case 296: return true;
|
|
case 299: return true;
|
|
case 300: return true;
|
|
case 301: return true;
|
|
case 302: return true;
|
|
case 303: return true;
|
|
case 304: return true;
|
|
case 305: return true;
|
|
case 306: return true;
|
|
case 307: return true;
|
|
case 308: return true;
|
|
case 311: return true;
|
|
case 312: return true;
|
|
case 313: return true;
|
|
case 314: return true;
|
|
case 317: return true;
|
|
case 320: return true;
|
|
case 321: return true;
|
|
case 322: return true;
|
|
case 323: return true;
|
|
case 324: return true;
|
|
case 325: return true;
|
|
case 326: return true;
|
|
case 328: return true;
|
|
case 329: return true;
|
|
case 330: return true;
|
|
case 331: return true;
|
|
case 333: return true;
|
|
case 334: return true;
|
|
case 336: return true;
|
|
case 337: return true;
|
|
case 338: return true;
|
|
case 339: return true;
|
|
case 341: return true;
|
|
case 342: return true;
|
|
case 344: return true;
|
|
case 345: return true;
|
|
case 347: return true;
|
|
case 348: return true;
|
|
case 349: return true;
|
|
case 350: return true;
|
|
case 352: return true;
|
|
case 353: return true;
|
|
case 354: return true;
|
|
case 355: return true;
|
|
case 356: return true;
|
|
case 358: return true;
|
|
case 359: return true;
|
|
case 360: return true;
|
|
case 361: return true;
|
|
case 362: return true;
|
|
case 364: return true;
|
|
case 365: return true;
|
|
case 366: return true;
|
|
case 367: return true;
|
|
case 371: return true;
|
|
case 374: return true;
|
|
case 376: return true;
|
|
case 377: return true;
|
|
case 378: return true;
|
|
case 379: return true;
|
|
case 380: return true;
|
|
case 381: return true;
|
|
case 382: return true;
|
|
case 383: return true;
|
|
case 384: return true;
|
|
case 386: return true;
|
|
case 387: return true;
|
|
case 388: return true;
|
|
case 389: return true;
|
|
case 390: return true;
|
|
case 391: return true;
|
|
case 392: return true;
|
|
case 393: return true;
|
|
case 396: return true;
|
|
case 397: return true;
|
|
case 398: return true;
|
|
case 399: return true;
|
|
case 401: return true;
|
|
case 402: return true;
|
|
case 403: return true;
|
|
case 404: return true;
|
|
case 405: return true;
|
|
case 406: return true;
|
|
case 407: return true;
|
|
case 409: return true;
|
|
case 411: return true;
|
|
case 413: return true;
|
|
case 416: return true;
|
|
case 417: return true;
|
|
case 418: return true;
|
|
case 419: return true;
|
|
case 420: return true;
|
|
case 421: return true;
|
|
case 422: return true;
|
|
case 423: return true;
|
|
case 424: return true;
|
|
case 425: return true;
|
|
case 426: return true;
|
|
case 427: return true;
|
|
case 428: return true;
|
|
case 429: return true;
|
|
case 430: return true;
|
|
case 431: return true;
|
|
case 432: return true;
|
|
case 433: return true;
|
|
case 434: return true;
|
|
case 435: return true;
|
|
case 436: return true;
|
|
case 437: return true;
|
|
case 438: return true;
|
|
case 439: return true;
|
|
case 440: return true;
|
|
case 441: return true;
|
|
case 442: return true;
|
|
case 443: return true;
|
|
case 444: return true;
|
|
case 445: return true;
|
|
case 448: return true;
|
|
case 449: return true;
|
|
case 450: return true;
|
|
case 451: return true;
|
|
case 452: return true;
|
|
case 453: return true;
|
|
case 454: return true;
|
|
case 455: return true;
|
|
case 456: return true;
|
|
case 457: return true;
|
|
case 458: return true;
|
|
case 459: return true;
|
|
case 460: return true;
|
|
case 461: return true;
|
|
case 463: return true;
|
|
case 464: return true;
|
|
case 468: return true;
|
|
case 469: return true;
|
|
case 470: return true;
|
|
case 471: return true;
|
|
case 472: return true;
|
|
case 473: return true;
|
|
case 474: return true;
|
|
case 475: return true;
|
|
case 476: return true;
|
|
case 478: return true;
|
|
case 479: return true;
|
|
case 481: return true;
|
|
case 483: return true;
|
|
case 484: return true;
|
|
case 490: return true;
|
|
case 492: return true;
|
|
case 494: return true;
|
|
case 495: return true;
|
|
case 496: return true;
|
|
case 497: return true;
|
|
case 499: return true;
|
|
case 500: return true;
|
|
case 501: return true;
|
|
case 502: return true;
|
|
case 503: return true;
|
|
case 504: return true;
|
|
case 505: return true;
|
|
case 506: return true;
|
|
case 507: return true;
|
|
case 508: return true;
|
|
case 509: return true;
|
|
case 510: return true;
|
|
case 511: return true;
|
|
case 512: return true;
|
|
case 513: return true;
|
|
case 515: return true;
|
|
case 516: return true;
|
|
case 517: return true;
|
|
case 518: return true;
|
|
case 520: return true;
|
|
case 522: return true;
|
|
case 523: return true;
|
|
case 524: return true;
|
|
case 525: return true;
|
|
case 526: return true;
|
|
case 527: return true;
|
|
case 528: return true;
|
|
case 529: return true;
|
|
case 530: return true;
|
|
case 531: return true;
|
|
case 532: return true;
|
|
case 533: return true;
|
|
case 534: return true;
|
|
case 535: return true;
|
|
case 536: return true;
|
|
case 537: return true;
|
|
case 538: return true;
|
|
case 539: return true;
|
|
case 540: return true;
|
|
case 541: return true;
|
|
case 542: return true;
|
|
case 543: return true;
|
|
case 544: return true;
|
|
case 545: return true;
|
|
case 546: return true;
|
|
case 547: return true;
|
|
case 548: return true;
|
|
case 549: return true;
|
|
case 550: return true;
|
|
case 551: return true;
|
|
case 552: return true;
|
|
case 553: return true;
|
|
case 554: return true;
|
|
case 555: return true;
|
|
case 556: return true;
|
|
case 558: return true;
|
|
case 559: return true;
|
|
case 560: return true;
|
|
case 561: return true;
|
|
case 563: return true;
|
|
case 564: return true;
|
|
case 565: return true;
|
|
case 566: return true;
|
|
case 567: return true;
|
|
case 568: return true;
|
|
case 569: return true;
|
|
case 570: return true;
|
|
case 571: return true;
|
|
case 572: return true;
|
|
case 573: return true;
|
|
case 574: return true;
|
|
case 575: return true;
|
|
case 576: return true;
|
|
case 579: return true;
|
|
case 580: return true;
|
|
case 581: return true;
|
|
case 582: return true;
|
|
case 583: return true;
|
|
case 584: return true;
|
|
case 585: return true;
|
|
case 587: return true;
|
|
case 588: return true;
|
|
case 589: return true;
|
|
case 590: return true;
|
|
case 591: return true;
|
|
case 592: return true;
|
|
case 593: return true;
|
|
case 594: return true;
|
|
case 595: return true;
|
|
case 596: return true;
|
|
case 597: return true;
|
|
case 599: return true;
|
|
case 600: return true;
|
|
case 602: return true;
|
|
case 603: return true;
|
|
case 605: return true;
|
|
case 606: return true;
|
|
case 607: return true;
|
|
case 608: return true;
|
|
case 609: return true;
|
|
case 610: return true;
|
|
case 611: return true;
|
|
case 612: return true;
|
|
case 613: return true;
|
|
case 614: return true;
|
|
case 615: return true;
|
|
case 616: return true;
|
|
case 617: return true;
|
|
case 618: return true;
|
|
case 619: return true;
|
|
case 620: return true;
|
|
case 621: return true;
|
|
case 622: return true;
|
|
case 623: return true;
|
|
case 625: return true;
|
|
case 626: return true;
|
|
case 627: return true;
|
|
case 628: return true;
|
|
case 629: return true;
|
|
case 630: return true;
|
|
case 631: return true;
|
|
case 632: return true;
|
|
case 633: return true;
|
|
case 634: return true;
|
|
case 635: return true;
|
|
case 637: return true;
|
|
case 638: return true;
|
|
case 639: return true;
|
|
case 640: return true;
|
|
case 641: return true;
|
|
case 642: return true;
|
|
case 643: return true;
|
|
case 644: return true;
|
|
case 646: return true;
|
|
case 647: return true;
|
|
case 648: return true;
|
|
case 649: return true;
|
|
case 651: return true;
|
|
case 652: return true;
|
|
case 653: return true;
|
|
case 654: return true;
|
|
case 655: return true;
|
|
case 656: return true;
|
|
case 657: return true;
|
|
case 658: return true;
|
|
case 659: return true;
|
|
case 660: return true;
|
|
case 661: return true;
|
|
case 662: return true;
|
|
case 663: return true;
|
|
case 664: return true;
|
|
case 665: return true;
|
|
case 670: return true;
|
|
case 671: return true;
|
|
case 672: return true;
|
|
case 673: return true;
|
|
case 674: return true;
|
|
case 675: return true;
|
|
case 676: return true;
|
|
case 677: return true;
|
|
case 678: return true;
|
|
case 679: return true;
|
|
case 680: return true;
|
|
case 681: return true;
|
|
case 682: return true;
|
|
case 683: return true;
|
|
case 684: return true;
|
|
case 685: return true;
|
|
case 686: return true;
|
|
case 687: return true;
|
|
case 688: return true;
|
|
case 689: return true;
|
|
case 690: return true;
|
|
case 691: return true;
|
|
case 692: return true;
|
|
case 693: return true;
|
|
case 694: return true;
|
|
case 695: return true;
|
|
case 696: return true;
|
|
case 697: return true;
|
|
case 698: return true;
|
|
case 699: return true;
|
|
case 701: return true;
|
|
case 702: return true;
|
|
case 703: return true;
|
|
case 704: return true;
|
|
case 705: return true;
|
|
case 706: return true;
|
|
case 709: return true;
|
|
case 710: return true;
|
|
case 711: return true;
|
|
case 712: return true;
|
|
case 713: return true;
|
|
case 715: return true;
|
|
case 717: return true;
|
|
case 718: return true;
|
|
case 719: return true;
|
|
case 720: return true;
|
|
case 721: return true;
|
|
case 722: return true;
|
|
case 723: return true;
|
|
case 724: return true;
|
|
case 725: return true;
|
|
case 726: return true;
|
|
case 727: return true;
|
|
case 728: return true;
|
|
case 729: return true;
|
|
case 730: return true;
|
|
case 731: return true;
|
|
case 732: return true;
|
|
case 733: return true;
|
|
case 734: return true;
|
|
case 735: return true;
|
|
case 736: return true;
|
|
case 737: return true;
|
|
case 738: return true;
|
|
case 739: return true;
|
|
case 740: return true;
|
|
case 741: return true;
|
|
case 742: return true;
|
|
case 743: return true;
|
|
case 744: return true;
|
|
case 745: return true;
|
|
case 746: return true;
|
|
case 747: return true;
|
|
case 748: return true;
|
|
case 749: return true;
|
|
case 750: return true;
|
|
case 751: return true;
|
|
case 752: return true;
|
|
case 753: return true;
|
|
case 754: return true;
|
|
case 755: return true;
|
|
case 756: return true;
|
|
case 757: return true;
|
|
case 758: return true;
|
|
case 759: return true;
|
|
case 760: return true;
|
|
case 761: return true;
|
|
case 762: return true;
|
|
case 763: return true;
|
|
case 764: return true;
|
|
case 765: return true;
|
|
case 766: return true;
|
|
case 767: return true;
|
|
case 768: return true;
|
|
case 769: return true;
|
|
case 770: return true;
|
|
case 772: return true;
|
|
case 773: return true;
|
|
case 774: return true;
|
|
case 775: return true;
|
|
case 776: return true;
|
|
case 777: return true;
|
|
case 778: return true;
|
|
case 779: return true;
|
|
case 780: return true;
|
|
case 781: return true;
|
|
case 782: return true;
|
|
case 783: return true;
|
|
case 784: return true;
|
|
case 785: return true;
|
|
case 786: return true;
|
|
case 787: return true;
|
|
case 788: return true;
|
|
case 789: return true;
|
|
case 790: return true;
|
|
case 791: return true;
|
|
case 792: return true;
|
|
case 793: return true;
|
|
case 794: return true;
|
|
case 795: return true;
|
|
case 796: return true;
|
|
case 797: return true;
|
|
case 798: return true;
|
|
case 799: return true;
|
|
case 800: return true;
|
|
case 801: return true;
|
|
case 802: return true;
|
|
case 803: return true;
|
|
case 804: return true;
|
|
case 805: return true;
|
|
case 806: return true;
|
|
case 807: return true;
|
|
case 808: return true;
|
|
case 809: return true;
|
|
case 810: return true;
|
|
case 811: return true;
|
|
case 812: return true;
|
|
case 813: return true;
|
|
case 815: return true;
|
|
case 816: return true;
|
|
case 817: return true;
|
|
case 818: return true;
|
|
case 819: return true;
|
|
case 820: return true;
|
|
case 821: return true;
|
|
case 822: return true;
|
|
case 823: return true;
|
|
case 824: return true;
|
|
case 825: return true;
|
|
case 826: return true;
|
|
case 829: return true;
|
|
case 830: return true;
|
|
case 831: return true;
|
|
case 832: return true;
|
|
case 834: return true;
|
|
case 835: return true;
|
|
case 836: return true;
|
|
case 837: return true;
|
|
case 838: return true;
|
|
case 839: return true;
|
|
case 841: return true;
|
|
case 843: return true;
|
|
case 844: return true;
|
|
case 845: return true;
|
|
case 846: return true;
|
|
case 847: return true;
|
|
case 849: return true;
|
|
case 851: return true;
|
|
case 852: return true;
|
|
case 853: return true;
|
|
case 854: return true;
|
|
case 855: return true;
|
|
case 857: return true;
|
|
case 859: return true;
|
|
case 860: return true;
|
|
case 861: return true;
|
|
case 862: return true;
|
|
case 863: return true;
|
|
case 865: return true;
|
|
case 867: return true;
|
|
case 868: return true;
|
|
case 869: return true;
|
|
case 870: return true;
|
|
case 871: return true;
|
|
case 873: return true;
|
|
case 875: return true;
|
|
case 876: return true;
|
|
case 877: return true;
|
|
case 878: return true;
|
|
case 879: return true;
|
|
case 881: return true;
|
|
case 883: return true;
|
|
case 884: return true;
|
|
case 885: return true;
|
|
case 886: return true;
|
|
case 887: return true;
|
|
case 889: return true;
|
|
case 891: return true;
|
|
case 892: return true;
|
|
case 893: return true;
|
|
case 894: return true;
|
|
case 895: return true;
|
|
case 897: return true;
|
|
case 899: return true;
|
|
case 900: return true;
|
|
case 901: return true;
|
|
case 902: return true;
|
|
case 903: return true;
|
|
case 905: return true;
|
|
case 907: return true;
|
|
case 908: return true;
|
|
case 909: return true;
|
|
case 910: return true;
|
|
case 911: return true;
|
|
case 913: return true;
|
|
case 915: return true;
|
|
case 916: return true;
|
|
case 917: return true;
|
|
case 918: return true;
|
|
case 919: return true;
|
|
case 921: return true;
|
|
case 923: return true;
|
|
case 924: return true;
|
|
case 925: return true;
|
|
case 926: return true;
|
|
case 927: return true;
|
|
case 929: return true;
|
|
case 931: return true;
|
|
case 932: return true;
|
|
case 933: return true;
|
|
case 934: return true;
|
|
case 935: return true;
|
|
case 936: return true;
|
|
case 937: return true;
|
|
case 939: return true;
|
|
case 940: return true;
|
|
case 941: return true;
|
|
case 943: return true;
|
|
case 944: return true;
|
|
case 945: return true;
|
|
case 947: return true;
|
|
case 948: return true;
|
|
case 949: return true;
|
|
case 951: return true;
|
|
case 952: return true;
|
|
case 953: return true;
|
|
case 955: return true;
|
|
case 956: return true;
|
|
case 957: return true;
|
|
case 959: return true;
|
|
case 960: return true;
|
|
case 961: return true;
|
|
case 963: return true;
|
|
case 964: return true;
|
|
case 965: return true;
|
|
case 967: return true;
|
|
case 968: return true;
|
|
case 969: return true;
|
|
case 971: return true;
|
|
case 972: return true;
|
|
case 973: return true;
|
|
case 974: return true;
|
|
case 975: return true;
|
|
case 976: return true;
|
|
case 977: return true;
|
|
case 978: return true;
|
|
case 979: return true;
|
|
case 980: return true;
|
|
case 981: return true;
|
|
case 984: return true;
|
|
case 986: return true;
|
|
case 987: return true;
|
|
case 988: return true;
|
|
case 989: return true;
|
|
case 992: return true;
|
|
case 993: return true;
|
|
case 994: return true;
|
|
case 995: return true;
|
|
case 996: return true;
|
|
case 997: return true;
|
|
case 998: return true;
|
|
case 999: return true;
|
|
case 1000: return true;
|
|
case 1001: return true;
|
|
case 1002: return true;
|
|
case 1003: return true;
|
|
case 1004: return true;
|
|
case 1005: return true;
|
|
case 1006: return true;
|
|
case 1007: return true;
|
|
case 1008: return true;
|
|
case 1010: return true;
|
|
case 1013: return true;
|
|
case 1014: return true;
|
|
case 1015: return true;
|
|
case 1016: return true;
|
|
case 1017: return true;
|
|
case 1018: return true;
|
|
case 1019: return true;
|
|
case 1020: return true;
|
|
case 1021: return true;
|
|
case 1022: return true;
|
|
case 1023: return true;
|
|
case 1024: return true;
|
|
case 1025: return true;
|
|
case 1026: return true;
|
|
case 1027: return true;
|
|
case 1028: return true;
|
|
case 1029: return true;
|
|
case 1030: return true;
|
|
case 1031: return true;
|
|
case 1032: return true;
|
|
case 1033: return true;
|
|
case 1034: return true;
|
|
case 1035: return true;
|
|
case 1036: return true;
|
|
case 1037: return true;
|
|
case 1038: return true;
|
|
case 1040: return true;
|
|
case 1041: return true;
|
|
case 1042: return true;
|
|
case 1043: return true;
|
|
case 1044: return true;
|
|
case 1045: return true;
|
|
case 1046: return true;
|
|
case 1047: return true;
|
|
case 1048: return true;
|
|
case 1049: return true;
|
|
case 1050: return true;
|
|
case 1051: return true;
|
|
case 1052: return true;
|
|
case 1053: return true;
|
|
case 1054: return true;
|
|
case 1056: return true;
|
|
case 1057: return true;
|
|
case 1059: return true;
|
|
case 1060: return true;
|
|
case 1062: return true;
|
|
case 1063: return true;
|
|
case 1064: return true;
|
|
case 1065: return true;
|
|
case 1066: return true;
|
|
case 1069: return true;
|
|
case 1070: return true;
|
|
case 1071: return true;
|
|
case 1072: return true;
|
|
case 1073: return true;
|
|
case 1074: return true;
|
|
case 1075: return true;
|
|
case 1076: return true;
|
|
case 1077: return true;
|
|
case 1078: return true;
|
|
case 1079: return true;
|
|
case 1080: return true;
|
|
case 1081: return true;
|
|
case 1082: return true;
|
|
case 1083: return true;
|
|
case 1084: return true;
|
|
case 1085: return true;
|
|
case 1086: return true;
|
|
case 1087: return true;
|
|
case 1088: return true;
|
|
case 1089: return true;
|
|
case 1090: return true;
|
|
case 1091: return true;
|
|
case 1092: return true;
|
|
case 1093: return true;
|
|
case 1094: return true;
|
|
case 1095: return true;
|
|
case 1096: return true;
|
|
case 1097: return true;
|
|
case 1098: return true;
|
|
case 1099: return true;
|
|
case 1100: return true;
|
|
case 1101: return true;
|
|
case 1102: return true;
|
|
case 1103: return true;
|
|
case 1104: return true;
|
|
case 1105: return true;
|
|
case 1106: return true;
|
|
case 1107: return true;
|
|
case 1108: return true;
|
|
case 1109: return true;
|
|
case 1111: return true;
|
|
case 1112: return true;
|
|
case 1113: return true;
|
|
case 1114: return true;
|
|
case 1115: return true;
|
|
case 1116: return true;
|
|
case 1117: return true;
|
|
case 1118: return true;
|
|
case 1119: return true;
|
|
case 1120: return true;
|
|
case 1121: return true;
|
|
case 1122: return true;
|
|
case 1123: return true;
|
|
case 1124: return true;
|
|
case 1125: return true;
|
|
case 1126: return true;
|
|
case 1127: return true;
|
|
case 1128: return true;
|
|
case 1129: return true;
|
|
case 1130: return true;
|
|
case 1131: return true;
|
|
case 1132: return true;
|
|
case 1133: return true;
|
|
case 1134: return true;
|
|
case 1135: return true;
|
|
case 1136: return true;
|
|
case 1137: return true;
|
|
case 1138: return true;
|
|
case 1139: return true;
|
|
case 1140: return true;
|
|
case 1141: return true;
|
|
case 1142: return true;
|
|
case 1143: return true;
|
|
case 1144: return true;
|
|
case 1145: return true;
|
|
case 1146: return true;
|
|
case 1147: return true;
|
|
case 1148: return true;
|
|
case 1149: return true;
|
|
case 1150: return true;
|
|
case 1151: return true;
|
|
case 1152: return true;
|
|
case 1153: return true;
|
|
case 1154: return true;
|
|
case 1155: return true;
|
|
case 1156: return true;
|
|
case 1157: return true;
|
|
case 1158: return true;
|
|
case 1159: return true;
|
|
case 1160: return true;
|
|
case 1161: return true;
|
|
case 1162: return true;
|
|
case 1163: return true;
|
|
case 1164: return true;
|
|
case 1165: return true;
|
|
case 1166: return true;
|
|
case 1167: return true;
|
|
case 1168: return true;
|
|
case 1169: return true;
|
|
case 1170: return true;
|
|
case 1171: return true;
|
|
case 1172: return true;
|
|
case 1173: return true;
|
|
case 1174: return true;
|
|
case 1175: return true;
|
|
case 1176: return true;
|
|
case 1177: return true;
|
|
case 1178: return true;
|
|
case 1179: return true;
|
|
case 1180: return true;
|
|
case 1181: return true;
|
|
case 1182: return true;
|
|
case 1183: return true;
|
|
case 1184: return true;
|
|
case 1185: return true;
|
|
case 1186: return true;
|
|
case 1187: return true;
|
|
case 1188: return true;
|
|
case 1189: return true;
|
|
case 1190: return true;
|
|
case 1191: return true;
|
|
case 1192: return true;
|
|
case 1193: return true;
|
|
case 1194: return true;
|
|
case 1195: return true;
|
|
case 1196: return true;
|
|
case 1197: return true;
|
|
case 1198: return true;
|
|
case 1199: return true;
|
|
case 1200: return true;
|
|
case 1201: return true;
|
|
case 1202: return true;
|
|
case 1203: return true;
|
|
case 1204: return true;
|
|
case 1205: return true;
|
|
case 1206: return true;
|
|
case 1207: return true;
|
|
case 1208: return true;
|
|
case 1209: return true;
|
|
case 1210: return true;
|
|
case 1211: return true;
|
|
case 1212: return true;
|
|
case 1213: return true;
|
|
case 1214: return true;
|
|
case 1215: return true;
|
|
case 1216: return true;
|
|
case 1217: return true;
|
|
case 1218: return true;
|
|
case 1219: return true;
|
|
case 1220: return true;
|
|
case 1221: return true;
|
|
case 1222: return true;
|
|
case 1223: return true;
|
|
case 1224: return true;
|
|
case 1225: return true;
|
|
case 1226: return true;
|
|
case 1227: return true;
|
|
case 1228: return true;
|
|
case 1229: return true;
|
|
case 1230: return true;
|
|
case 1231: return true;
|
|
case 1232: return true;
|
|
case 1233: return true;
|
|
case 1234: return true;
|
|
case 1236: return true;
|
|
case 1237: return true;
|
|
case 1238: return true;
|
|
case 1239: return true;
|
|
case 1240: return true;
|
|
case 1241: return true;
|
|
case 1242: return true;
|
|
case 1243: return true;
|
|
case 1244: return true;
|
|
case 1245: return true;
|
|
case 1246: return true;
|
|
case 1247: return true;
|
|
case 1248: return true;
|
|
case 1249: return true;
|
|
case 1250: return true;
|
|
case 1251: return true;
|
|
case 1252: return true;
|
|
case 1253: return true;
|
|
case 1254: return true;
|
|
case 1255: return true;
|
|
case 1256: return true;
|
|
case 1257: return true;
|
|
case 1258: return true;
|
|
case 1259: return true;
|
|
case 1260: return true;
|
|
case 1261: return true;
|
|
case 1262: return true;
|
|
case 1263: return true;
|
|
case 1264: return true;
|
|
case 1265: return true;
|
|
case 1266: return true;
|
|
case 1267: return true;
|
|
case 1268: return true;
|
|
case 1269: return true;
|
|
case 1270: return true;
|
|
case 1271: return true;
|
|
case 1272: return true;
|
|
case 1273: return true;
|
|
case 1274: return true;
|
|
case 1276: return true;
|
|
case 1277: return true;
|
|
case 1278: return true;
|
|
case 1279: return true;
|
|
case 1280: return true;
|
|
case 1281: return true;
|
|
case 1282: return true;
|
|
case 1283: return true;
|
|
case 1284: return true;
|
|
case 1285: return true;
|
|
case 1286: return true;
|
|
case 1287: return true;
|
|
case 1288: return true;
|
|
case 1289: return true;
|
|
case 1290: return true;
|
|
case 1291: return true;
|
|
case 1292: return true;
|
|
case 1293: return true;
|
|
case 1294: return true;
|
|
case 1295: return true;
|
|
case 1296: return true;
|
|
case 1297: return true;
|
|
case 1298: return true;
|
|
case 1299: return true;
|
|
case 1300: return true;
|
|
case 1301: return true;
|
|
case 1302: return true;
|
|
case 1303: return true;
|
|
case 1304: return true;
|
|
case 1305: return true;
|
|
case 1306: return true;
|
|
case 1307: return true;
|
|
case 1308: return true;
|
|
case 1309: return true;
|
|
case 1310: return true;
|
|
case 1311: return true;
|
|
case 1312: return true;
|
|
case 1313: return true;
|
|
case 1314: return true;
|
|
case 1315: return true;
|
|
case 1316: return true;
|
|
case 1317: return true;
|
|
case 1318: return true;
|
|
case 1319: return true;
|
|
case 1320: return true;
|
|
case 1321: return true;
|
|
case 1322: return true;
|
|
case 1323: return true;
|
|
case 1324: return true;
|
|
case 1325: return true;
|
|
case 1326: return true;
|
|
case 1327: return true;
|
|
case 1328: return true;
|
|
case 1329: return true;
|
|
case 1330: return true;
|
|
case 1331: return true;
|
|
case 1332: return true;
|
|
case 1333: return true;
|
|
case 1334: return true;
|
|
case 1335: return true;
|
|
case 1336: return true;
|
|
case 1337: return true;
|
|
case 1338: return true;
|
|
case 1339: return true;
|
|
case 1340: return true;
|
|
case 1341: return true;
|
|
case 1342: return true;
|
|
case 1343: return true;
|
|
case 1344: return true;
|
|
case 1345: return true;
|
|
case 1346: return true;
|
|
case 1347: return true;
|
|
case 1348: return true;
|
|
case 1349: return true;
|
|
default: return false;
|
|
}
|
|
}
|
|
|
|
inline const char* WireDispatchApi(uint32_t opcode) {
|
|
for (uint32_t i = 0; i < kMobileGLDispatchCount; ++i) {
|
|
if (kMobileGLDispatch[i].opcode == opcode) return kMobileGLDispatch[i].api;
|
|
}
|
|
return "?";
|
|
}
|
|
|
|
inline const char* WireDispatchPayloadTable(uint32_t opcode) {
|
|
for (uint32_t i = 0; i < kMobileGLDispatchCount; ++i) {
|
|
if (kMobileGLDispatch[i].opcode == opcode) return kMobileGLDispatch[i].payloadTable;
|
|
}
|
|
return "";
|
|
}
|
|
|
|
// Executes one generated wire command. payloadBytes must point at the
|
|
// root table of the opcode's Gen* payload; returns 0 when dispatched,
|
|
// 1 when the opcode has no supported generated handler.
|
|
uint32_t WireDispatchCall(uint32_t opcode,
|
|
uint32_t sessionId,
|
|
const void* payloadBytes,
|
|
uint64_t payloadSize,
|
|
const void* const* receivedShm,
|
|
uint32_t receivedShmCount,
|
|
uint32_t outCapacity);
|
|
|
|
// Scalar return capture: WireDispatchCall stores the return value of
|
|
// a non-void API so the ServerCore can echo it in Response.ret_i64.
|
|
void WireDispatchResetReturn();
|
|
bool WireDispatchReturnValid();
|
|
int64_t WireDispatchReturnI64();
|
|
void WireDispatchStoreI64(int64_t value);
|
|
void WireDispatchStoreU64(uint64_t value);
|
|
// Out-vector capture (glGen* families): the dispatch allocates the
|
|
// target buffer, writes server-side results, then stores the bytes
|
|
// for Response.ret_bytes.
|
|
void WireDispatchStoreBytes(const uint8_t* data, uint32_t size);
|
|
const uint8_t* WireDispatchBytes();
|
|
uint32_t WireDispatchBytesSize();
|
|
|
|
} // namespace MobileGL::Protocol::Wire
|
|
|
|
// End of File
|