676462c43e97896caa891b1e0aeb27d5d4f13637 |
|
29-Nov-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: add g2d_move We already have g2d_copy() which implements G2D copy operations from one buffer to another. However we can't do a overlapping copy operation in one buffer. Add g2d_move() which acts like the standard memmove() and properly handles overlapping copies. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
/external/libdrm/exynos/exynos_fimg2d.c
|
51fd93bc38a33df33f7bf6cbf1ae3fbf74a47dba |
|
29-Nov-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: fimg2d: add g2d_set_direction This allows setting the two direction registers, which specify how the engine blits pixels. This can be used for overlapping blits, which happen e.g. when 'moving' a rectangular region inside a fixed buffer. Reviewed-by: Hyungwon Hwang <human.hwang@samsung.com> Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
60df3581961ef7f1003459f696e5954b5df30aeb |
|
29-Nov-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: add g2d_config_event This enables us to pass command buffers to the kernel which trigger an event on the DRM fd upon completion. The final goal is to enable asynchronous operation of the G2D engine, similar to async page flips. Passing the event userdata pointer through the G2D context was chosen to not change the current API (e.g. by adding a userdata argument to each public functions). Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
/external/libdrm/exynos/exynos_fimg2d.c
|
df21b293e9cf550ec8d6a3e49461350dbdf14260 |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: remove g2d_context from public header All functions from the public API only operation on struct g2d_context*, so this shouldn't break too much. Make the context private since we don't want the user to modify its content directly. Also remove the defines that were only used for fields of g2d_context. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
/external/libdrm/exynos/exynos_fimg2d.c
|
ce4a4f6e21d4112f0b88c973283b586e1fccddd9 |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: add message prefix Add a prefix to the messages printed to the console via printf() and fprintf() so that one can easily see where the message comes from. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
bf666b5e999236ec6406afd60ca35a465c6b3262 |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: make g2d_add_cmd() less heavy The function currently checks for each added command if an overflow of the corresponding command buffers occurs, but none of the callers ever checks the return value. Since all callers are now converted to use g2d_check_space() simplify the function. (1) The overflow checks become asserts, so they're only active for debug builds. This is fine since g2d_add_cmd() is not part of the public API. (2) Switch the return value to void. (3) Explicitly state that the caller has to check buffer space before calling g2d_add_cmd(). Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
6a4479da71e93ef5141d9c493c235c2beb64170a |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: remove superfluous initialization of g2d_point_val The g2d_point_val union consists of two coordinates of 16 bits. Whenever this union is used though, both coordinates are explicitly set. Hence prior initialization is unnecessary. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
76d1c6b15725f1e7de3c60b0398639e06bf295be |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: remove default case from g2d_get_blend_op() We now validate the blending mode via g2d_validate_mode() prior to feeding it to g2d_get_blend_op(). Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
e3c97d1a2473cd06a964599d10465f1e6a4d9015 |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: add g2d_validate_xyz() functions The G2D headers define a number of modes through enums (like e.g. color, select, repeat, etc.). This introduces g2d_validate_select_mode() and g2d_validate_blending_op() which validate a select mode or blending operation respectively. Use this together with g2d_check_space() in g2d_{blend,scale_and_blend}(). For this we move parameter validation to the top and also validate the select mode of the source image and the requested blending operation before starting command submission. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
2362c88251d4bba0bb76d2a25f233004c6f99134 |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: add g2d_check_space() This is going to be used to check if the command buffers have enough space left prior to actual submission of the commands. Use this in g2d_{solid_fill,copy,copy_with_scale}(). For this the parameter validation before buffer space checking so that we can exit early if it fails. Also don't reset the G2D context in this situation since the buffers are not partially submitted anymore. The repeat mode in g2d_copy_with_scale() is checked first to make computation of space easier. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
9017619714eb432fa9bb1e94139cc2ad40fc7001 |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: simplify base address submission in g2d_scale_and_blend() Use g2d_add_base_addr() for source and destination base address just like all other calls. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
a8dc2e75cfb2acecae7cb7aeefa20b9c92abd297 |
|
08-Sep-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: fix empty buffer handling in g2d_flush() Empty command buffers are no error, we just don't have anything to do for flushing then. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
53b1081da1b05e6225d93d4a6890fba4eba8313e |
|
12-Jun-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos/fimg2d: simplify g2d_fini() free()ing a nullptr is a noop, so remove the check. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
7da8f07274cfe57cfd157e184f1f0b4c15405b9e |
|
12-Jun-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: fimg2d: fix return codes Even if flushing the command buffer doesn't succeed, the G2D calls would still return zero. Fix this by just passing the flush return code. In fact error handling currently ignores the fact that g2d_add_cmd() can fail. This is going to be handled in a later patch. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
0f8da82500ec542e269092c0718479e25eaff5f6 |
|
31-Mar-2015 |
Emil Velikov <emil.l.velikov@gmail.com> |
drm: remove drm_public macro Some compilers (like the Oracle Studio), require that the function declaration must be annotated with the same visibility attribute as the definition. As annotating functions with drm_public is no longer required just remove the macro. Cc: Ben Skeggs <bskeggs@redhat.com> Cc: Damien Lespiau <damien.lespiau@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com> Cc: Michel Dänzer <michel.daenzer@amd.com> Cc: Rob Clark <robdclark@gmail.com> Cc: Thierry Reding <treding@nvidia.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
42465feb9759ef5a6d79d7e628510cd0a081f913 |
|
05-Apr-2015 |
Emil Velikov <emil.l.velikov@gmail.com> |
drm: rename libdrm{,_macros}.h Provide a more meaningful name, considering what it does. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
9a0949a8f46b6b844ab4a1ecce79a9e9078151c6 |
|
11-Mar-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: add exynos prefix to fimg2d header Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Inki Dae <inki.dae@samsung.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
736d6a1f0f8292fe3f3d0b38f5d69b8693767537 |
|
16-Mar-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: use structure initialization instead of memset Keeps the code cleaner, since the structs have to be initialized once anyway. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Inki Dae <inki.dae@samsung.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com> [evelikov: squash trivial conflict] Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Conflicts: tests/exynos/exynos_fimg2d_test.c
/external/libdrm/exynos/exynos_fimg2d.c
|
89037326ca6012ba18be29dc6587e11617164400 |
|
11-Mar-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: honor the repeat mode in g2d_copy_with_scale This is useful when the default repeat mode, which is 'repeat' produces artifacts at the borders of the copied image. Choose the 'pad' mode to make use of the color of the destination image. In my usage case the destination is the framebuffer, which is solid filled with a background color. Scaling with 'pad' mode would then just do the right thing and also produces nice borders on the output. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Inki Dae <inki.dae@samsung.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
03c9cccfa03b999874f794c02ddce7e7dfb04c93 |
|
11-Mar-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: add g2d_scale_and_blend This is a combination of g2d_copy_with_scale and g2d_scale. It is a pretty common operation to scale one buffer and then blend it on top of another, so provide a direct way to that operation. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Inki Dae <inki.dae@samsung.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
f7b0586f164f3157fae228c5e413a38d1650cada |
|
24-Feb-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: fimg2d: whitespace fix in g2d_flush Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
0d48697e7c10345f940b74de1cd476ec987058bb |
|
24-Feb-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: fimg2d: introduce G2D_OP_INTERPOLATE This sets up the blending equation in the following way: out = src * src_alpha + dst * (1 - src_alpha) Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
ba858e06d8e73180643f40afa9f4de562dc40252 |
|
24-Feb-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: fimg2d: remove TRUE/FALSE from header The fimg2d header was defining TRUE and FALSE, but actually these defines are just used once. Remove them, since they don't make the code better readable/understandable. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
74add49f1b829dd580aae1dfdce2a0ebbbba216c |
|
24-Feb-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: introduce g2d_add_base_addr helper function In almost all functions the base address register is written, so it makes sense to have a helper function for this. v3: Wrap line as pointed out by Emil Velikov <emil.l.velikov@gmail.com>. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
c8168fe5b8e4c448976a79d5b00d10e31e304cf5 |
|
24-Feb-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
tests/exynos: fix typos and change wording No functional changes. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
1d7e78d7877f054f7b96d6a35d50255e76aed44f |
|
24-Feb-2015 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: replace G2D_DOUBLE_TO_FIXED macro with function This also avoids the floating point conversion steps and just uses pure integer arithmetic. Since the G2D hardware scaling approach is a bit unintuitive, document it in the function as well. v2: Explicitly mention the normalization constant. v3: Use common commenting style as pointed out by Emil Velikov <emil.l.velikov@gmail.com>. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Joonyoung Shim <jy0922.shim@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
d9ce09de12131fa8c5ff2d7c2dbd6b61d8a5fd14 |
|
04-Aug-2014 |
Maarten Lankhorst <maarten.lankhorst@canonical.com> |
exynos: Use symbol visibility. No changes to exported symbols. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
e8c3c1358ecaf4e90f7d43762357ae6f8e2022b6 |
|
01-Jun-2014 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: fix scaling factor computation in g2d_copy_with_scale When division of source and destination width yields the scaling factor for the x-coordinate, then it should be source/destination _height_ for y. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Signed-off-by: Inki Dae <inki.dae@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
63f51fc4d34814c80d452e03814b5b495548987b |
|
01-Jun-2014 |
Tobias Jakobi <tjakobi@math.uni-bielefeld.de> |
exynos: fix coordinate computation in g2d_copy The right-bottom register isn't set correctly. Looks like a copy-and-paste error. Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Signed-off-by: Inki Dae <inki.dae@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
4e193aa817685d23cb38722788541caee0115cb5 |
|
17-Apr-2014 |
Daniel Kurtz <djkurtz@chromium.org> |
exynos_fimg2d: fix cast from pointer to integer of different size Fixes two gcc [-Wpointer-to-int-cast] warnings. Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Acked-by: Inki Dae <inki.dae@samsung.com>
/external/libdrm/exynos/exynos_fimg2d.c
|
bbf6e3dea3c79ea8e0c3e1dd8f80014201e003fc |
|
18-Feb-2013 |
Inki Dae <inki.dae@samsung.com> |
libdrm/exynos: add test application for 2d gpu. This patch adds library and test application for g2d gpu(fimg2d). The fimg2d hardware is a 2D graphics accelerator(G2D) that supports Bit Block Transfer(BitBLT). The library includes the following primitive drawing operations: .solid fill - This operation fills the given buffer with the given color data. .copy - This operation copies contents in source buffer to destination buffer. .copy_with_scale - This operation copies contents in source buffer to destination buffer scaling up or down properly. .blend - This operation blends contents in source buffer with the ones in destination buffer. And the above operations uses gem handle or user space address allocated by malloc() as source or destination buffer. And the test application includes just simple primitive drawing tests with the above library. And the guide to test is as the following, "#exynos_fimg2d_test -s connector_id@crtc_id:mode" With this above simple command, four primitive drawing operations would be called step by step and also rendered on the output device to the given connector and crtc id. Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Rob Clark <robdclark@gmail.com>
/external/libdrm/exynos/exynos_fimg2d.c
|