st/nine: Optimize dynamic systemmem buffers
Some apps use DYNAMIC SYSTEMMEM buffers and fill them in a dynamic fashion with discard and nooverwrite locking flags. To prevent uploading the whole buffer every draw call, track the region needed for the draw call, and upload only that region (or a bit more in order to ease valid region tracking). Try to aggressively upload with discard/unsynchronized. Signed-off-by:Axel Davy <davyaxel0@gmail.com> Part-of: <mesa/mesa!9451>
- src/gallium/frontends/nine/buffer9.c 49 additions, 21 deletionssrc/gallium/frontends/nine/buffer9.c
- src/gallium/frontends/nine/buffer9.h 133 additions, 5 deletionssrc/gallium/frontends/nine/buffer9.h
- src/gallium/frontends/nine/device9.c 60 additions, 0 deletionssrc/gallium/frontends/nine/device9.c
- src/gallium/frontends/nine/device9.h 2 additions, 0 deletionssrc/gallium/frontends/nine/device9.h
- src/gallium/frontends/nine/nine_state.c 2 additions, 1 deletionsrc/gallium/frontends/nine/nine_state.c
- src/gallium/frontends/nine/nine_state.h 1 addition, 0 deletionssrc/gallium/frontends/nine/nine_state.h
- src/gallium/frontends/nine/swapchain9.c 1 addition, 0 deletionssrc/gallium/frontends/nine/swapchain9.c