ValveSoftware / csgo-osx-linux

Counter-Strike: Global Offensive
http://counter-strike.net
787 stars 69 forks source link

Usernames containing Emoji are rendered incorrectly or not at all. #1425

Open dawid2193487 opened 7 years ago

dawid2193487 commented 7 years ago

Your system information

Computer Information:
    Manufacturer:  Unknown
    Model:  Unknown
    Form Factor: Desktop
    No Touch Input Detected

Processor Information:
    CPU Vendor:  GenuineIntel
    CPU Brand:         Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
    CPU Family:  0x6
    CPU Model:  0x2a
    CPU Stepping:  0x7
    CPU Type:  0x0
    Speed:  3700 Mhz
    4 logical processors
    4 physical processors
    HyperThreading:  Unsupported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Supported
    SSE4a:  Unsupported
    SSE41:  Supported
    SSE42:  Supported
    AES:  Supported
    AVX:  Supported
    CMPXCHG16B:  Supported
    LAHF/SAHF:  Supported
    PrefetchW:  Unsupported

Network Information:
    Network Speed:  

Operating System Version:
    Debian GNU/Linux 9.0 (stretch) (64 bit)
    Kernel Name:  Linux
    Kernel Version:  4.9.0-3-amd64
    X Server Vendor:  The X.Org Foundation
    X Server Release:  11902000
    X Window Manager:  Mutter (Muffin)
    Steam Runtime Version:  steam-runtime-beta-release_2016-12-05

Video Card:
    Driver:  NVIDIA Corporation GeForce GTX 1050 Ti/PCIe/SSE2

    Driver Version:  4.5.0 NVIDIA 375.39
    OpenGL Version: 4.5
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 60 Hz
    VendorID:  0x10de
    DeviceID:  0x1c82
    Revision Not Detected
    Number of Monitors:  1
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1920 x 1080
    Desktop Resolution: 1920 x 1080
    Primary Display Size: 20,08" x 11,42"  (23,07" diag)
                                            51,0cm x 29,0cm  (58,6cm diag)
    Primary Bus: PCI Express 16x
    Primary VRAM: 4096 MB
    Supported MSAA Modes:  2x 4x 8x 16x 

Sound card:
    Audio device: Realtek ALC892

Memory:
    RAM:  7970 Mb

Miscellaneous:
    UI Language:  English
    LANG:  pl_PL.UTF-8
    Microphone:  Not set
    Steam Controller Cable and Base:  Not set
    Total Hard Disk Space Available:  360156 Mb
    Largest Free Hard Disk Block:  165557 Mb
    VR Headset: None detected

System was updated 2 days ago.

Please describe your issue in as much detail as possible:

Whenever a player on the server includes Emoji characters within their username (ex. ★ (U+2605)) then it isn't interpreted correctly and random chinese characters are rendered instead.

The garbled text is not consistent and changes every few seconds, sometimes vanishing entirely for a couple of seconds.

Sometimes on the killfeed when it has to display a buggy username it will instead use a part of username of a person previously shown on the feed(use after free?)

Screenshots documenting the bug: http://imgur.com/a/E7zF5

Steps for reproducing this issue:

  1. Run Debian Stretch 64-bit
  2. Play CS:GO with your own username set to contain '★', for me "★shalom" has reproduced the issue
  3. Join a match, look at the scoreboard and the killfeed.
ralacerda commented 7 years ago

I was having the same problem. It looks like a Locale problem with Ubuntu/Debian and not a CSGO client problem.

I fixed it by launching steam with the prefix "LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8". Fixing your locale files should fix this problem globally.

dawid2193487 commented 4 years ago

This has been fixed with the depreciation of Scaleform and implementation of Panorama.

dawid2193487 commented 4 years ago

I switched back to Debian. Turns out, this issue is Debian specific and doesn't show up on Ubuntu. This bug causes garbage data from memory to be rendered as text, on screen. The text is rendered all the way until a null byte is somewhere within the memory, so the text flickers between being a couple characters long, or even couple thousand characters long, which causes the game to hang for a couple of milliseconds, simply due to the amount of text being rendered. I will look into this in more depth.