Commit 5fb3d3d6 authored by Sunny Sachanandani's avatar Sunny Sachanandani Committed by Commit Bot

gpu: Workaround for NV12 dynamic textures used for software video frames

Map usage STAGING texture along with copy to usage DEFAULT texture to
workaround crashes when mapping usage DYNAMIC textures.  Restrict
workaround to Intel driver versions < 24 based on crash data.

Also add a few trace events for swap buffers, texture upload, blit, etc.

Bug: 890227
Change-Id: I1cc9bae3fc0ddf6303375c99054113a9a995806c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1576016Reviewed-by: default avatarZhenyao Mo <zmo@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Commit-Position: refs/heads/master@{#652734}
parent a6914216
...@@ -3294,6 +3294,22 @@ ...@@ -3294,6 +3294,22 @@
"features": [ "features": [
"disable_copy_tex_image_2d_rgb10_a2_mali" "disable_copy_tex_image_2d_rgb10_a2_mali"
] ]
},
{
"id": 303,
"cr_bugs": [890227],
"description": "Dynamic texture map crashes on Intel drivers less than version 24",
"os": {
"type" : "win"
},
"vendor_id": "0x8086",
"driver_version": {
"op": "<",
"value": "24"
},
"features": [
"disable_nv12_dynamic_textures"
]
} }
] ]
} }
...@@ -32,6 +32,7 @@ disable_gl_rgb_format ...@@ -32,6 +32,7 @@ disable_gl_rgb_format
disable_larger_than_screen_overlays disable_larger_than_screen_overlays
disable_non_empty_post_sub_buffers_for_onscreen_surfaces disable_non_empty_post_sub_buffers_for_onscreen_surfaces
disable_nv12_dxgi_video disable_nv12_dxgi_video
disable_nv12_dynamic_textures
disable_overlay_ca_layers disable_overlay_ca_layers
disable_post_sub_buffers_for_onscreen_surfaces disable_post_sub_buffers_for_onscreen_surfaces
disable_program_cache disable_program_cache
......
...@@ -218,6 +218,8 @@ void* DirectCompositionChildSurfaceWin::GetHandle() { ...@@ -218,6 +218,8 @@ void* DirectCompositionChildSurfaceWin::GetHandle() {
gfx::SwapResult DirectCompositionChildSurfaceWin::SwapBuffers( gfx::SwapResult DirectCompositionChildSurfaceWin::SwapBuffers(
PresentationCallback callback) { PresentationCallback callback) {
TRACE_EVENT1("gpu", "DirectCompositionChildSurfaceWin::SwapBuffers", "size",
size_.ToString());
// PresentationCallback is handled by DirectCompositionSurfaceWin. The child // PresentationCallback is handled by DirectCompositionSurfaceWin. The child
// surface doesn't need provide presentation feedback. // surface doesn't need provide presentation feedback.
DCHECK(!callback); DCHECK(!callback);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment