summaryrefslogtreecommitdiff
path: root/hw/vigs
AgeCommit message (Collapse)AuthorFilesLines
2014-03-26VIGS: Fix bad DisplaySurface accessStanislav Vorobiov1-0/+6
vigs_server_update_display may update DisplaySurface, so vigs_hw_update must fetch it again Change-Id: Iaabe9be4d3467d96a0b8c5360360437bc9dbb2a2 Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
2014-03-19VIGS/YaGL: fixes some codejinhyung.jo1-15/+2
yagl_server.c Add a null-pointer checking statement yagl_device.c & vigs_gl_backend.c Remove statements that is not used, because the conditions cannot be true. Change-Id: Iee478bf6caafe5dab352f26afc4c3ac1413f6ef4 Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
2014-03-06YaGL/VIGS: Version bumpglesv3Stanislav Vorobiov1-1/+1
GLESv3 merge version bump Change-Id: Ic270b317b943ff082a4c1580845cc01a8a655173
2014-03-06YaGL/VIGS: Set log level to info by defaultStanislav Vorobiov1-1/+1
Change-Id: I42617a10c8cfc7535aefd633d9d95571c5106804
2014-03-01VIGS: Use proper shader versionsStanislav Vorobiov1-12/+56
We need to use 120 shaders when in legacy mode and 140 shaders when in GL3 mode Change-Id: Ic9cd8aee5a9dd936c57f40c9d255f7497f158c45
2014-02-24VIGS/YaGL: Support OpenGL 3.1+ core on windowsStanislav Vorobiov1-5/+156
On windows we use WGL_ARB_create_context for that Change-Id: Ib032f4dc45d36d50b1af440f71d8d97ba5eb950a
2014-02-24VIGS: Fixed for windows buildStanislav Vorobiov2-3/+5
Change-Id: Ib6e053a9680832c1651798f688d74ce4f47c98fb
2014-02-24VIGS/YaGL: Use glMapBufferRange instead of glBufferSubDataStanislav Vorobiov5-7/+64
glBufferSubData is broken on windows, it cannot be used to subsequently replace part of buffer data between drawing calls, so use glMapBufferRange instead. If glMapBufferRange is not available then use glFinish + glBufferSubData to guarantee synchronization Change-Id: Ic9ff0ad0ca0f18f38c92dddfc382e504b3573761
2014-02-22VIGS/YaGL: Use CGL instead of AGLStanislav Vorobiov3-366/+380
AGL is a deprecated API and it doesn't allow one to create OpenGL 3.2 contexts, so use CGL instead Change-Id: Iaa63fee0aeda7348c256f177b3a96b10142870d4
2014-02-21VIGS/YaGL: Using same OpenGL env variableStanislav Vorobiov3-7/+155
VIGS and YaGL should use the same env variable, so that they could create compatible contexts Change-Id: Ibe63f5d8abdb281a71f62118af0d0413ea8c8a7d
2014-02-20VIGS: Fixed for OpenGL 3.1+ coreStanislav Vorobiov5-353/+538
We've reimplemented everything using shaders and VBOs, since this is the only way to go in OpenGL 3.1+ core Change-Id: I7a6787c74910e52fe06242499535d1be9137b3ef
2014-02-20VIGS: Add 'draw_pixels' operation to winsys_surfaceStanislav Vorobiov2-11/+103
We introduce new method to winsys_surface - draw_pixels, some winsys_interface users just want to write raw pixel data to surfaces, they don't care if it's OpenGL texture or some memory chunk or something else, so we provide a generic way to write pixel data to winsys surfaces Change-Id: I9d2e2ac17c88ea844c02d2160986c44642285735
2014-02-20VIGS: Implemented plane supportStanislav Vorobiov11-84/+568
We now support up to 2 hardware planes with z-ordering and scaling. This patch also adds surface scanout flag support. Surface scanout flag is used as a hint that helps the host to decide how to process the surface - either upload it to texture or continously scanout data out of surface's VRAM Change-Id: Ia5ac6014cfd0b49f80c4593763ee86966cf23c2a
2014-02-20VIGS: Fix fence ack lossesStanislav Vorobiov2-19/+30
It's incorrect to have vblank enable/disable flag in INT register, it can cause fence ack losses, consider the following scenario: 1. Fence interrupt is set on host, fence_pending bit is set in INT register 2. vblank is turned off on guest, INT register is being written to and since fence_pending bit is 1 it's CLEARED on host 3. Now guest handles fence IRQ, but fence_pending bit is 0, thus, fence ack is lost The solution is to have separate register - CON and vblank enable/disable bit should be there Change-Id: I1ff97d4cf8cddaec65dfe9d4c1afef3d901b4825
2014-01-15Merge remote-tracking branch 'origin/tizen' into glesv3Stanislav Vorobiov44-0/+27899
Conflicts: hw/vigs/vigs_gl_backend_glx.c hw/yagl/yagl_apis/gles/yagl_gles_calls.c hw/yagl/yagl_backends/egl_offscreen/yagl_egl_offscreen_context.c hw/yagl/yagl_backends/egl_onscreen/yagl_egl_onscreen_surface.c hw/yagl/yagl_inc/GLES/egl.h hw/yagl/yagl_inc/GLES/gl.h hw/yagl/yagl_inc/GLES/glext.h hw/yagl/yagl_inc/GLES/glplatform.h hw/yagl/yagl_inc/GLES2/gl2.h hw/yagl/yagl_inc/GLES2/gl2ext.h hw/yagl/yagl_inc/GLES2/gl2platform.h hw/yagl_apis/gles/yagl_gles_api_ts.c hw/yagl_apis/gles/yagl_gles_api_ts.h hw/yagl_drivers/gles_ogl/yagl_gles_ogl.h hw/yagl_egl_backend.c hw/yagl_egl_driver.c hw/yagl_egl_interface.h hw/yagl_gles_driver.c hw/yagl_transport.c hw/yagl_transport.h hw/yagl_types.h hw/yagl_version.h Change-Id: Icc72fbe2ff253ae282d3f2972e216b1fc42c1b02
2014-01-13VIGS: Use glTexSubImage2D instead of glDrawPixelsStanislav Vorobiov1-15/+68
With some GPUs (like Intel HD Graphics 2000) glDrawPixels with glPixelZoom doesn't work very well, it may do software fallback or produce ban rendering, so it's better to use glTexSubImage2D Change-Id: I827f0985d558493067954a95c05e227dc064fe88
2014-01-13YaGL/VIGS: Use GL_UNSIGNED_INT_8_8_8_8_REV instead of GL_UNSIGNED_BYTEStanislav Vorobiov1-1/+1
On Mac OS X glReadPixels with GL_UNSIGNED_BYTE may introduce stalls even when it's used with PBO, so use GL_UNSIGNED_INT_8_8_8_8_REV - it's the same thing and it doesn't stall glReadPixels Change-Id: I40ae1981579b3596f42f9a22604fd3d7fad8e335
2014-01-13VIGS: Use GL_PACK_ALIGNMENT/GL_UNPACK_ALIGNMENT 1 instead of 4Stanislav Vorobiov1-8/+4
With some GPUs (like Intel HD Graphics 2000) GL_PACK_ALIGNMENT == 4 may introduce glReadPixels stalls even when it's used with PBO, so use GL_PACK_ALIGNMENT == 1 - it's the same thing and it doesn't stall glReadPixels Change-Id: Id34e7f0d00a9e65813859b4e9ad931db7149fa0d
2014-01-13VIGS: Using asynchronous glReadPixels for display updateStanislav Vorobiov9-115/+466
On somy GPUs like Intel HD Graphics 2000 glReadPixels is too slow, so we use so called asynchronous version of glReadPixels - it uses PBO for pixel storage and separate work queue to read back results Change-Id: I43f30daf57166a30cecf356fa2170da640de1ae3
2014-01-13YaGL/VIGS: Implemented multicore rendering and fencesStanislav Vorobiov10-355/+855
We now use multicore rendering, i.e. we offload all rendering to a separate thread and use fences to wait until certain parts of it are complete Change-Id: I9e3f31d07d0a7e575e73996d7762f3a0300ca83d
2014-01-03Merge branch 'tizen' into tizen_qemu_1.7SeokYeon Hwang1-26/+17
2013-12-19YaGL/VIGS: Use wglMakeCurrent instead of wglMakeContextCurrentARB when possibleStanislav Vorobiov1-26/+17
GPUs like Intel HD Graphics 2000 and some ATI cards may crash when using wglMakeContextCurrentARB when draw_sfc == read_sfc. We work around this by using wglMakeCurrent in this case Change-Id: I80735a546d6e506ecc3581a5e78fdc8e04f3a95c
2013-12-11Merge branch 'upstream-1.7' into tizen_qemu_1.7SeokYeon Hwang1-3/+3
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com> Conflicts: VERSION block/cow.c block/raw-win32.c block/stream.c block/vmdk.c blockdev.c exec.c hw/i386/pc_piix.c hw/scsi/scsi-bus.c include/qom/cpu.h include/sysemu/kvm.h qemu-img.c tcg/tcg.c tcg/tcg.h vl.c Change-Id: Ib8de93ad2c05150934e17e63d7f8e90ffdfccc62
2013-11-21YaGL/VIGS: Return glFinishStanislav Vorobiov1-8/+1
Though we use single host thread for all OpenGL operations it's still not guaranteed that commands in different contexts will be processed in order, thus, single glFinish in VIGS will not wait for GL commands to be processed in YaGL. Because of this contents of windows on target may appear incomplete, this was observed on Mac OS X in particular. glFinish will reduce performance, but it'll ensure correct rendering. Later we'll implement another approach that'll use GL fences in order not to wait for rendering to be completed Change-Id: I4eae90b73f4d66cd8c7fa1939db1c18ad9751051
2013-11-07vigs & yagl : Move sources to own directoriesjinhyung.jo42-0/+27005
Make new directories for each module in the hw directory , move the sources and add makefiles. Change-Id: Ife82c2770f6ae8917c854d70e8b89c44edbc1e9c Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>