爆顯示記憶體似乎也沒有甚麼影響... - 3C

Joe avatar
By Joe
at 2016-08-09T23:41

Table of Contents


顯示卡的記憶體是這樣分配的


|XXXXXXXX| (假定1GB)

**
顯示卡自己保留 比如說跟driver互相傳遞的buffer,啟動顯卡
資源分配的有的沒有的...沒有規定會做多大 有的卡可能不太大
不過如果你想保留512MB給自己用也不是不行

++
每次啟動3D的時候 基本的buffer例如frame buffer,double buffer,z buffer
放置vertex的buffer,放shader code的buffer等等

---------
貼圖使用


一般用軟體看顯示記憶體用量,可能是**++--------或者是++--------
的總和 看軟體怎麼偵測.

但是,--------是應用程式所準備好 所有貼圖的所有"尺寸(MIP-MAP)"


真正影響效能的 是--------中那些會被最近的frame所讀取

如果已經很久沒讀取了 基本上可以放在主記憶體之中,這是AGP顯示卡以來
的基本功能,所以,--------得總和大於顯示記憶體總量也沒甚麼


為甚麼--------不會每次都讀取到?

基本上有幾種可能


1.貼圖種類不同 像是假設有冰山 有火山
那你看不見其中一種的時候 也不會讀取他的貼圖
這就和視角以及場景有關

2.貼圖只用到其中幾個尺寸

MIP-MAP是由最小2*2開始,4*4,8*8....一直到N*N
都準備好,要用到的時候會挑x或者y長度最接近的一個
送到貼圖filter去.

如果解析度比較低 因為MIP-MAP會挑選解析度相近的
所以會傾向選擇比較小的 所以這個frame的貼圖總用量也會相應變小

怎麼說?假設2560*1440,占了螢幕的1/10要選一個貼圖 大約會
 選到512*512的,如果是1280*720 就應該是選到256的.

 不過即使是高解析度這個仍然可以調整,這個參數叫做LOD(Level of details)
Bias.就是跟標準的尺寸比起來 你想要傾向選較小或者是較大的貼圖
選擇小一號的就會只需要1/4的記憶體動態用量跟頻寬

這個不影響貼圖使用的總量 但是會影響你有多大的顯示記憶體
 可以跑順


因此在這個例子,"高"的2GB貼圖可能
(h表示常用)

2560*1440

hhhhhh--

1920*1080
hhhh----

1280*720 or LOD =-1
hh------


真正影響效能的量就是**++hh三種的總和

但是開放場景的話 貼圖的變化也會很大
那麼活動的總量就可能遠比你想像的還要高了



--
Tags: 3C

All Comments

Gary avatar
By Gary
at 2016-08-14T02:39
先推不然怕人說看不懂
Doris avatar
By Doris
at 2016-08-15T16:47
不管怎樣,先推就對了
Donna avatar
By Donna
at 2016-08-20T02:17
看到帳號先推再說
Anonymous avatar
By Anonymous
at 2016-08-20T14:05
先推再說
William avatar
By William
at 2016-08-23T09:29
認真看不懂 我資工菜鳥
Jack avatar
By Jack
at 2016-08-24T14:12
不要擠我先推
Genevieve avatar
By Genevieve
at 2016-08-29T02:56
推詳細教學 很多東西在腦中是有點模糊的印象
這篇這樣就說得很清楚了
Daniel avatar
By Daniel
at 2016-09-01T02:26
不管怎樣,先推看不懂 看完還是不懂
Rachel avatar
By Rachel
at 2016-09-04T00:51
不管! 先推再說 所以我知道3.5G>4G
Catherine avatar
By Catherine
at 2016-09-08T16:00
完蛋了 看不懂 XD
Sierra Rose avatar
By Sierra Rose
at 2016-09-11T01:45
好奇想問 framebuffer 讀的機會高嗎 XD
George avatar
By George
at 2016-09-13T17:10
LODbias是用來調整貼圖銳利度顆粒感
Elvira avatar
By Elvira
at 2016-09-18T11:13
framebuffer讀取機率很高,因為半透明
非讀不可, shader要加一行。
Blend SrcAlpha OneMinusSrcAlpha
Regina avatar
By Regina
at 2016-09-21T17:59
意思是 新顏色x透明度+舊顏色x(1-透明度)
Skylar Davis avatar
By Skylar Davis
at 2016-09-25T18:27
完了我只看得懂Baffet...咦!?
Sierra Rose avatar
By Sierra Rose
at 2016-09-25T23:56
新畫的pixel跟原本buffer中的pixel就混合了
Harry avatar
By Harry
at 2016-09-28T11:21
frame buffer讀寫是所有VRAM操作最耗頻寬
Catherine avatar
By Catherine
at 2016-10-03T11:13
比貼圖影響還大,因為材質能硬體解壓縮
Audriana avatar
By Audriana
at 2016-10-03T14:29
但FrameBuffer只能用低效DeltaColor壓縮
材質貼圖卻大部分可以破壞性壓縮。
Joe avatar
By Joe
at 2016-10-06T06:52
只要4~8bit就能儲存24~32bit Texel
Faithe avatar
By Faithe
at 2016-10-10T16:04
您顯卡系?
Iris avatar
By Iris
at 2016-10-14T09:49
推不然怕人說看不懂
Ethan avatar
By Ethan
at 2016-10-14T13:58
LodBias的作弊是把材質快取命中率提高。
其實卡上存放貼圖沒有減少。
Ida avatar
By Ida
at 2016-10-17T17:37
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃推分享
Franklin avatar
By Franklin
at 2016-10-20T22:03
但由於它不抓例如512那層而去抓256
Susan avatar
By Susan
at 2016-10-25T07:53
貼圖變糊但材質快取就更容易命中
命中時,材質頻寬需求是0
Brianna avatar
By Brianna
at 2016-10-26T17:23
從內部快取就找到=不必讀外部VRAM
Carolina Franco avatar
By Carolina Franco
at 2016-10-30T15:38
所以顯卡繪圖效率不受外部材質頻寬限制
達成不公平的分數。
David avatar
By David
at 2016-11-01T12:48
你4不4在老黃手下工作
Annie avatar
By Annie
at 2016-11-02T17:22
嗯嗯嗯跟我想的差不多.......啊你說什麼?
Kama avatar
By Kama
at 2016-11-04T03:40
沒有呢 不過我今天看104,nvidia在台灣竟然在找
研發替代役做Deep Learning
Ingrid avatar
By Ingrid
at 2016-11-08T22:33
LodBias是不影響貼圖存放位置。
DDS檔把所有Mipmap放在同一個檔了。
每張圖只有全放或不放在顯卡記憶體上
Eden avatar
By Eden
at 2016-11-10T16:38
biad影響到只是讀取所需頻寬,
Olivia avatar
By Olivia
at 2016-11-14T01:57
不會有只有某層mipmap擺不同記憶體情形
Delia avatar
By Delia
at 2016-11-14T05:25
不管用到哪一層mipmap,都是同一個
tex2D sampler對應一張DX的DDS材質
Elma avatar
By Elma
at 2016-11-15T04:34
推jk大
Linda avatar
By Linda
at 2016-11-18T20:57
先推不然怕人說看不懂
Rosalind avatar
By Rosalind
at 2016-11-20T00:21
嗯嗯 我本來也想發這篇文的 感謝jk大幫發
Jake avatar
By Jake
at 2016-11-22T00:00
有些引擎有個功能是強制把mipmap用到
1x1那最小一層,給開發者測試貼圖效能用。
每張貼圖變成1pixel,所以快取命中率100%
Bethany avatar
By Bethany
at 2016-11-23T08:22
嗯哼,你以為我看不懂嗎? 我真的看不懂 Orz
Sarah avatar
By Sarah
at 2016-11-28T00:39
然後就能看效能有多大改變。
Isabella avatar
By Isabella
at 2016-11-29T02:32
我終於看懂一篇了
Frederic avatar
By Frederic
at 2016-12-01T09:55
我發現我少講讀回 system ram 這件事 orz
Christine avatar
By Christine
at 2016-12-04T20:23
blending 要讀 pixel 沒錯,但是有必要過 bus ?
Leila avatar
By Leila
at 2016-12-06T12:40
你那篇講的是用GPU測量mipmap用到哪層
它開頭引用另一篇gem1文章的一句話
Do your users ever get to see your highest
mip level? If not...但改寫了後面那一句。
consider scaling back size of your textures
這才是原文。意思是用不到就縮小。
Emily avatar
By Emily
at 2016-12-08T00:46
長知識~~
Robert avatar
By Robert
at 2016-12-10T06:03
如果你測試發現512x512從來沒被使用上
不如縮成256x256....效果相同且省容量。
Necoo avatar
By Necoo
at 2016-12-11T21:08
這在10年前是一種簡易最佳化。
目前其實不太重要,因為顯卡級距越拉越大
Vanessa avatar
By Vanessa
at 2016-12-14T15:46
HD530/GT210用不上的最高mipmap
對跑4K的TitanX可能還嫌太糊了。
James avatar
By James
at 2016-12-19T09:13
不過在固定解析度封閉平臺還是用的上
例如大型電玩。螢幕顯卡都是固定配置
Thomas avatar
By Thomas
at 2016-12-20T06:52
畫面只會顯示250pixel寬的東西,用到
512寬的素材也沒機會顯示lv0的mipmap
Candice avatar
By Candice
at 2016-12-21T11:11
家機通常也是固定解析度,即使有伸縮也不大
Zanna avatar
By Zanna
at 2016-12-23T10:47
咦但是我記得貼圖層,在主記憶體和顯卡記憶體裡面的
Vanessa avatar
By Vanessa
at 2016-12-24T03:55
那句出處 http://goo.gl/fVa9np
Edward Lewis avatar
By Edward Lewis
at 2016-12-25T03:44
關係,有點像CPU那邊主記憶體與L快取的關係
Enid avatar
By Enid
at 2016-12-27T06:57
Mipmap我沒看過引擎去丟棄,因為不合邏輯
Ida avatar
By Ida
at 2016-12-29T15:22
趕快推 不然別人會以為我看不懂
Callum avatar
By Callum
at 2017-01-02T01:58
通常都是直接在loading就縮放
James avatar
By James
at 2017-01-02T06:36
mipmap用到哪一層是pixel shader已經在算
才決定的,CPU或驅動根本無法事先知道
Susan avatar
By Susan
at 2017-01-04T01:52
都是中文 都看不懂 @@
Enid avatar
By Enid
at 2017-01-05T06:13
摸幾年繪圖領域的東西,就不得不懂...
GPU GEM1 & GEM2是古董級的書了。
Charlotte avatar
By Charlotte
at 2017-01-09T02:34
裡面一堆古董架構與舊時代組語shader
拿來蓋泡麵還算堪用。
Susan avatar
By Susan
at 2017-01-12T12:29
都是中文 卻看不懂
Eden avatar
By Eden
at 2017-01-15T16:26
欸?你們看不懂嗎?不會吧!?怎麼和我一樣
Caroline avatar
By Caroline
at 2017-01-17T17:49
沒有必要看懂,知道結論就行了,結論是……
Agatha avatar
By Agatha
at 2017-01-21T12:02
結論是看不懂QQ
Victoria avatar
By Victoria
at 2017-01-24T18:06
只好再度承認看不懂了
Skylar Davis avatar
By Skylar Davis
at 2017-01-26T22:04
這啥? 中文?
Olivia avatar
By Olivia
at 2017-01-29T09:52
連教主都看不懂 我就放心惹
Daniel avatar
By Daniel
at 2017-02-03T08:38
居然連教主也看無ob'_'ov
Sierra Rose avatar
By Sierra Rose
at 2017-02-04T02:50
原po記憶體專家
Victoria avatar
By Victoria
at 2017-02-08T12:56
連教主都看不懂 那就代表這公司請對人惹
Victoria avatar
By Victoria
at 2017-02-08T23:27
難道jk也是兩家某一家的lol...
Ivy avatar
By Ivy
at 2017-02-09T22:20
教主都看不懂,我們鄉民Orz
Blanche avatar
By Blanche
at 2017-02-12T06:34
Annie avatar
By Annie
at 2017-02-13T03:29
太專業惹,只能推QQ
Elma avatar
By Elma
at 2017-02-17T21:28
vertex 跟 texture 一樣是開 buffer 記憶體幹嘛分區
Emma avatar
By Emma
at 2017-02-20T18:00
mipmap 本來就整張上,它是去雜訊不是要省空間
Frederica avatar
By Frederica
at 2017-02-22T11:12
只是說支援偷吃主記憶體,你也不知道他放什麼
Odelette avatar
By Odelette
at 2017-02-27T04:30
vulkan 以後這些要自己管,誰會想撕開 mipmap....
Elizabeth avatar
By Elizabeth
at 2017-02-28T00:12
看不懂....Orz
Iris avatar
By Iris
at 2017-03-04T10:15
實際上還是要看繪圖引擎的資源管理才知道
Noah avatar
By Noah
at 2017-03-08T13:33
每個字我都看得懂 連起來就...
Poppy avatar
By Poppy
at 2017-03-09T17:59
看不懂只好推了
Zenobia avatar
By Zenobia
at 2017-03-13T21:58
快推不然會被知道看不懂
Charlotte avatar
By Charlotte
at 2017-03-16T03:46
這篇算是有把我的意思大致表達出來,給你80分
Ivy avatar
By Ivy
at 2017-03-18T02:50
總之我看不懂
Ethan avatar
By Ethan
at 2017-03-22T18:02
jk神 o(_ _)o
Ophelia avatar
By Ophelia
at 2017-03-22T22:32
結論是螢幕如果大或解析度高需要大量記憶體?
Dinah avatar
By Dinah
at 2017-03-23T22:05
所以jk跟kuma誰說的是對的?
Ida avatar
By Ida
at 2017-03-27T08:50
支持JK大 老實說太專業看不大懂
Ina avatar
By Ina
at 2017-03-31T00:58
資源管理是繪圖引擎在管的,如果你顯卡自己想管,
問題會很嚴重,因為GPU根本不知道下個frame
要顯示什麼。自以為mipmap用不到,
但下個frame鏡頭就突然拉近……完蛋。
Selena avatar
By Selena
at 2017-04-01T06:04
講中文很難?QQQQQQ
Eartha avatar
By Eartha
at 2017-04-03T05:49
兩位都是人才
Jake avatar
By Jake
at 2017-04-07T18:08
知道每pixel使用哪一層mipmap已經是 rasterization
階段
Una avatar
By Una
at 2017-04-12T06:40
一個優化的腳色往往身上就有不同mipmap...
Carol avatar
By Carol
at 2017-04-16T15:51
因為開發者會對重點部位用較大的texel area
比如臉的texel用的最密集,手腳較稀疏。
Mason avatar
By Mason
at 2017-04-20T06:02
再全身包起來,以省draw call。。
Liam avatar
By Liam
at 2017-04-24T10:16
當shader用tex2d(map,uv)指令讀貼圖,
TMU硬體才即時根據pixel/texel對應比例決定最適mipm
ap
Hedwig avatar
By Hedwig
at 2017-04-28T04:04
硬體完全沒法事先知道哪層mipmap不會用到。
Ingrid avatar
By Ingrid
at 2017-04-28T08:55
只能當下發現要用哪一層mipmap。直接去抓。
Kelly avatar
By Kelly
at 2017-04-28T13:12
硬體virtual address不用來減少卡上存取貼圖量
實際上要跑快還是全體mipmap都搬到VRAM上。
不然效率很差,要準確預測那些用不上,
只能依靠3D engine的virtual texture技術。
引擎才知道接下來要點什麼菜,可以預先備料。
Blanche avatar
By Blanche
at 2017-05-02T21:31
VirtualTexture/page講的mipmap/tile,
與lodbias講的mipmap則已經是不同東西了
Carol avatar
By Carol
at 2017-05-05T03:17
VirtualTexture本身是大到例如64K x 64K這種變態siz
e
遠超過正常貼圖(4K以下), 那是屬於引擎的軟體做資
源管理。
Tristan Cohan avatar
By Tristan Cohan
at 2017-05-09T13:54
專業文推..意思是只能先全抓在慢慢剔除不用算的?
Mason avatar
By Mason
at 2017-05-14T06:01
先推不然會被人以為看不懂
Charlie avatar
By Charlie
at 2017-05-15T16:23
不推不然會被人家以為有看懂 XD
Callum avatar
By Callum
at 2017-05-17T16:06
推就對了
Gilbert avatar
By Gilbert
at 2017-05-21T22:21
引擎資源管理常叫streaming texture之類
通常固定VRAM留一份低解析mipmap版本。
低解析版要多低則是參數可變動的設定。
然後高解析版在引擎快要需要時,送到卡上。
但你移動快速時有可能發生popping.
因為來不及把高解析版送到,只好先用
低解析,然後過一會兒突然變清楚。
但所有引擎預設貼圖都不是streaming
那些貼圖適合streaming則是屬於資源最佳化
如果streaming還是爆記憶體怎摸辦了?
以autodesk新推廣的stingray引擎為例。
他會把似乎沒有使用的貼圖移除,再放新的
Leila avatar
By Leila
at 2017-05-25T09:36
如果連這招都不夠,則常使用的貼圖也降級。
Andrew avatar
By Andrew
at 2017-05-29T11:24
基本一分錢一分貨,不必要的搬移越少越好。
streaming技術是讓你1~8GB都能全開。
但顯卡記憶體還是得持續越來越大。
Harry avatar
By Harry
at 2017-05-31T08:43
否則效率與畫質會被拖累。
但也不用大到用不完的程度,浪費錢而已。
Lydia avatar
By Lydia
at 2017-06-03T11:04
材質雖然年年提升,但顯示卡生命週期相對短。
Aaliyah avatar
By Aaliyah
at 2017-06-07T14:04
低階卡Ram少,但它性能低,
跑未來遊戲也只能越開越低解析。
材質量的成長被低解析省的記憶體彌補了
Frederica avatar
By Frederica
at 2017-06-09T02:39
不另回一篇嗎XD
Sandy avatar
By Sandy
at 2017-06-11T18:27
我moptt手機用回文都會死當....
Sierra Rose avatar
By Sierra Rose
at 2017-06-13T10:20
該換PiPTT了
Sierra Rose avatar
By Sierra Rose
at 2017-06-14T15:49
該換JPTT了
Belly avatar
By Belly
at 2017-06-18T11:53

20K遊戲文書機

Victoria avatar
By Victoria
at 2016-08-09T22:36
已買/未買/已付訂金(元):未買 預算/用途:預算在20K左右/LOL特效全開,看影集,用用Office,希望不要鈍即可. CPU (中央處理器):Intel I5-4460 MB (主機板):華碩 B85M-G RAM (記憶體):UMAX 4G*2 VGA (顯示卡):華碩 ...

撼訊 RX 460 紅龍首發

Carolina Franco avatar
By Carolina Franco
at 2016-08-09T21:04
PTT 圖文好讀: https://www.ptt.cc/bbs/PC_Shopping/M.1470747899.A.281.html 前言廢文: 本魯自從跳到 PS4 後大約一年半沒玩 PC Game 最近手癢想重溫以前 XBOX One 時期的 Forza Motorsport 6: Apex ...

20k(扣除cpu+hdd)遊戲機

Donna avatar
By Donna
at 2016-08-09T20:05
已買/未買/已付訂金(元): 預算/用途:20k CPU (中央處理器):Intel I5-6500 3.2GHz/6M/HD530/65W (已有) MB (主機板):華碩 B150-PRO(ATX/1A1D1H/U3/M.2/四年到府 RAM (記憶體):美光 8G*2 DDR4-2 ...

紅龍460 vs 750ti

Carolina Franco avatar
By Carolina Franco
at 2016-08-09T19:35
※ 引述《rockman1118 (玉骨冰心沐流塵)》之銘言: : 最近前神卡msi 560用4年掛了,現在都出到1080了說...算活夠本了吧 : 這幾天想去敗張顯卡,因為要結婚了,加上有ps4暫時不玩3a大作。想買張低階的卡撐 個 : 一年半載再花錢重組電腦 : 目前只玩鬥陣特攻跟看影片 : 我認識的電腦 ...

30K影片剪輯遊戲機請益

Gary avatar
By Gary
at 2016-08-09T18:43
已買/未買/已付訂金(元):未買 預算/用途:含螢幕30K內,越低越好 影片剪輯,玩遊戲(LOL、鬥陣特攻畫質可以開中我就很開心了),寫程式 CPU (中央處理器):Intel I5-6500【四核】3.2GHz(↑3.6GHz)/6M/HD530/65W MB (主機板):微星 B150M ...