zed-industries / zed

Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
https://zed.dev
Other
49.67k stars 3.05k forks source link

Crash on Windows 10 with missing DCompositionWaitForCompositorClock #9166

Closed kazatsuyu closed 8 months ago

kazatsuyu commented 8 months ago

Check for existing issues

Describe the bug / provide steps to reproduce it

DCompositionWaitForCompositorClock is only supported on Windows 11 and will crash on Widows 10. This problem has not occurred in my environment, but I am submitting this issue because of multiple reports on Discord.

Environment

Windows 10

If applicable, add mockups / screenshots to help explain present your vision of the feature

No response

If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.

No response

ThatFrogDev commented 8 months ago

This happens for all environment below Windows 11. I'll look into the docs for this function and see if I can fix it.

zkna commented 8 months ago

I've met.

I've been compiling with win10 all afternoon, with install rust environment, compiling zed, with github very slow internet speed. I'm not sure if it's win10 or a hardware issue. So I'm posting my environment and reported errors in the hope that you can fix it.

image

--------[ Overview]----------------------------------------------------------------------------------

  Computer Model:     AZW GTR Computer
  System                     Windows 10 professional 64位(Version 22H2 / DirectX 12)

  Processor:                       AMD Ryzen 9 6900HX with Radeon Graphics 八核
  Mainboard:                     AZW GTR(AMD PCI 标准主机 CPU 桥)
  Graphics Card:                AMD Radeon Graphics ( 3 GB )
  Memory:                         64 GB ( 英睿达 DDR5 4800MHz 32GB x 2 )
  Hard Disk:                       英睿达 CT1000P5PSSD8 (1 TB / 固态硬盘)
  Monitor:                         华硕 AUS2421 ASUS VG249 ( 23.8 英寸  )
  Sound Card:                   瑞昱 ALC269 @ AMD High Definition Audio 控制器
  Network Card:                英特尔 Ethernet Controller  I225-V

--------[ 主板 ]----------------------------------------------------------------------------------

  主板型号                     AZW GTR
  芯片组                       AMD PCI 标准主机 CPU 桥
  序列号                       C18S0641940967
  主板版本                     V02
  BIOS                         安迈  International, LLC. GTR6_P5C4V20  /  BIOS程序发布日期: 12/30/2022
  BIOS的大小                   16384 KB

  板载设备                     视频设备 (启用)

--------[ Processor ]----------------------------------------------------------------------------------

  处理器                       AMD Ryzen 9 6900HX with Radeon Graphics 八核
  速度                         3.30 GHz
  处理器数量                   核心数:8 / 线程数:16
  生产工艺                     6 纳米
  插槽/插座                    FP7
  一级数据缓存                 8 x 32 KB, 8-Way, 64 byte lines
  一级代码缓存                 8 x 32 KB, 8-Way, 64 byte lines
  二级缓存                     8 x 512 KB, 8-Way, 64 byte lines
  三级缓存                     16 MB, 16-Way, 64 byte lines
  特征                         MMX+, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, SSE4A, HTT, X86-64, AES, AVX, AVX2, FMA, SHA
--------[ 硬盘 ]----------------------------------------------------------------------------------

  产品                         英睿达 CT1000P5PSSD8 (固态硬盘)
  大小                         1 TB
  固件                         P7CR403
  接口                         PCIe 4.0 x4
  数据传输率                   8000 MB/秒
  特性                         S.M.A.R.T, VolatileWriteCache
  硬盘已使用                   共 216 次,累计 2039 小时

--------[ 内存 ]----------------------------------------------------------------------------------

  P0 CHANNEL A - DIMM 0        英睿达 DDR5 4800MHz 32GB
  制造日期                     2022 年 39 周
  型号                         CT32G48C40S5.M16A1
  序列号                       E757F9BB
  厂商                         Crucial
  模块位宽                     2 * 32 Bits
  模块电压                     SSTL 1.10V

  P0 CHANNEL B - DIMM 0        英睿达 DDR5 4800MHz 32GB
  制造日期                     2022 年 39 周
  型号                         CT32G48C40S5.M16A1
  序列号                       E757FAFD
  厂商                         Crucial
  模块位宽                     2 * 32 Bits
  模块电压                     SSTL 1.10V

--------[ 显卡 ]----------------------------------------------------------------------------------

  主显卡                       AMD Radeon Graphics
  显存                         3 GB
  频率                         核心: 2400MHz / 显存: 2400MHz
  芯片制造商                   AMD
  BIOS版本                     032.017.000.054
  驱动版本                     31.0.21031.1005
  驱动日期                     20230824
---------------------------------------------------------------------------------------------------

emm.... too much, I hope it works for you. you can use google translate if you understand. I'm only a win 10 user, not a linux or mac user, so hopefully I can experience it in win 10 soon! Come on!

ThatFrogDev commented 8 months ago

Yeah, the problem is we're currently using a function which is only available in Windows 11 and up, namely DCompositionWaitForCompositorClock. It is possible to make a function for Windows 10 and below, but I can't test if it works since I don't have a Windows 10 machine. So, is there someone here who owns a Windows 10 computer and has some win32 api knowledge?

zkna commented 8 months ago

I've been compiling with win10 all afternoon, with install rust environment, compiling zed, with github very slow internet speed.

Sorry, I'm not familiar with win32 api. But I can offer my win10 computer if you need it.

golanguage commented 8 months ago

I have tried hello world demo of GPUI, got same result -- DComp ENTRY POINT issue.

But I have not enough win32 api skill to debug it.

ThatFrogDev commented 8 months ago

@zkna do you have Discord? Then we can communicate that way, just leave a message in the #windows-port channel. Also it seems like someone already is working on it, but it just needs some changes for better FPS.

zkna commented 8 months ago

@ThatFrogDev I registered an account and sent you a friend request. My NickName is zkna. UserName is bestliuxingtang

ThatFrogDev commented 8 months ago

@zkna to what account did you send the friend request? my Discord name is m_0342sa

zkna commented 8 months ago

@ThatFrogDev Domestic to foreign networks are very poor. So you'll have to build it yourself. I thought the contact info on your homepage was your account number.

ThatFrogDev commented 8 months ago

@zkna oh yeah - that's my old account, I can not access it anymore. I hope I regain access soon but for now you can use the other one.

chuwak86 commented 8 months ago

for those people who did not have ability to compile exe file, you can use my one.

https://terabox.com/s/1A0nvgwNnizhhslvH-blR6w

it is build for this pr https://github.com/zed-industries/zed/pull/9351/commits/3d70bb68c262792b31755d9e13bd66ec256e6850