connet 发表于 2014-11-19 13:00:12

4k 是假的吗?

    测试发现,即使android 选择4k 输出, android 系统运行状态还是1080p, 所谓的4k是不是把 1080p 的framebuffer scale输出到 4k 显示器(新下载的11月版本)?
   请问如何修改 kernel 分辨率,让 android 运行在 4k分辨率下?

isle 发表于 2014-11-19 16:39:55

一般FB 是FHD,HDMI 会scale到4k。播放ideo的是时候video输出video buffer直接 4K。无 scale 。
FB直接4K 没试过。内存会紧张吧。楼主有啥需求要FB 4K?

openeyes 发表于 2014-11-19 17:01:27

那一張4k2k的bmp檔,顯示出來不就失真了?

isle 发表于 2014-11-19 17:26:38

好吧 ,FB改4K的地方在kernel/arch/arm/boot/dts/lcd-box.dtsi
disp_timings: display-timings {
                        native-mode = <&timing1>;

改成 native-mode = <&timing2>;

暴走的阿Sai 发表于 2014-11-19 17:51:03

4K是一个分辨率标准,4K还包括解码能力,可以播放4K高清的视频,至于Android和HDMI的buffer也可以改大

connet 发表于 2014-11-20 10:03:50

把 kernel/arch/arm/boot/dts/lcd-box.dtsi修改为 改成 native-mode = <&timing2>; 编译出 resource.img, 更新后不是4k, 变成1280x720,4k 失败自动回到720p ?

isle 发表于 2014-11-20 14:25:51

把 cat /sys/class/graphics/fb0/disp_info 信息贴上来。

sky 发表于 2014-11-20 19:45:16

电视是4K吗?

connet 发表于 2014-11-21 10:32:07

烧写4k resource.img 后显示 /sys/class/graphics/fb0/disp_info
z-order:
layer3_sel_win
layer2_sel_win
layer1_sel_win
layer0_sel_win
win0:
state:0,   fmt:ARGB888,   y_vir:320,   uv_vir:320
xact: 320,   yact: 240,   dsp_x: 320,   dsp_y: 240,   x_st:   0,   y_st:   0
y_h_fac:    4096,   y_v_fac:    4096,   uv_h_fac:    4096,   uv_v_fac:    4096
y_addr: 0x00000000,   uv_addr:0x00000000
win1:
state:1,   fmt:ARGB888,   y_vir:3840,   uv_vir:0
xact:1280,   yact: 720,   dsp_x:3840,   dsp_y:2160,   x_st:   0,   y_st:   0
y_h_fac:   21825,   y_v_fac:   21809,   uv_h_fac:    4096,   uv_v_fac:    4096
y_addr: 0x10000000,   uv_addr:0x00000000
win2:
state:0
fmt:ARGB888
area0:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area1:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area2:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area3:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
win3:
state:0
fmt:ARGB888
area0:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area1:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0   addr:0x00000000
area2:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area3:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000

马上 reboot 后变成
z-order:
layer3_sel_win
layer2_sel_win
layer1_sel_win
layer0_sel_win
win0:
state:0,   fmt:ARGB888,   y_vir:320,   uv_vir:320
xact: 320,   yact: 240,   dsp_x: 320,   dsp_y: 240,   x_st:   0,   y_st:   0
y_h_fac:    4096,   y_v_fac:    4096,   uv_h_fac:    4096,   uv_v_fac:    4096
y_addr: 0x00000000,   uv_addr:0x00000000
win1:
state:1,   fmt:ARGB888,   y_vir:3840,   uv_vir:0
xact:1920,   yact:1080,   dsp_x:3840,   dsp_y:2160,   x_st:   0,   y_st:   0
y_h_fac:   32750,   y_v_fac:   32737,   uv_h_fac:    4096,   uv_v_fac:    4096
y_addr: 0x13f48000,   uv_addr:0x00000000
win2:
state:0
fmt:ARGB888
area0:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area1:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area2:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area3:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
win3:
state:0
fmt:ARGB888
area0:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area1:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0   addr:0x00000000
area2:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000
area3:state:0,y_vir: 320,dsp_x: 320,dsp_y: 240,x_st:   0,y_st:   0,addr:0x00000000

重启过程可以看到 屏幕中央的 android 图标 明显变小很多, 似乎4k 有效了, 但是进入android 后,第一次是720p 分辨率, 之后重启都是1080p,貌似android 系统拒绝了4k模式?

isle 发表于 2014-11-21 10:50:48

依照你的描述 应该是kernel已经生效了。android做了限制。
我在ubuntu上试过了。FB 4K是没问题。
这个需要android上层修改。可能比较麻烦点。
我先找找有没有解决方案吧。
页: [1] 2 3
查看完整版本: 4k 是假的吗?